系统日志记录

news/2024/11/17 12:58:38/

当我们搭建系统或者api 程序时,遇见报错的信息,做一个日志记录;现在很多优秀的第三方框架都已经集成了日志记录功能,如果不依赖框架也可以自己手写一个日志层。

一般处理日志的方式有三种
【1】:保存在本地txt 文本
【2】:保存在数据库;入写入日志到DB数据库
【3】:保存到服务器;如Windows EventLog 事件查看器里面的日志

下面简单说一下这三种:
创建枚举

    public enum LogTarget{/// <summary>/// 文件/// </summary>File,/// <summary>/// DB/// </summary>Database,/// <summary>/// 系统/// </summary>EventLog  //系统}

创建Logger类

FileLogger(本地txt)、DBLogger(数据库写入)、EventLogger(系统日志)
三种日志实现的具体方式

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DataLogger
{public abstract class LogBase{protected readonly object lockObj = new object();public abstract void Log(string message);}public class FileLogger : LogBase{private string filePath = Path.Combine(Environment.CurrentDirectory, "fileLog.txt");//public string filePath = $@"D:\Syn_Log\IDGLog{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-FFF")}.txt";public override void Log(string message){lock (lockObj){using (StreamWriter streamWriter = new StreamWriter(filePath, true)) //new StreamWriter(filePath)){streamWriter.WriteLine(message);streamWriter.Close();}}}}public class EventLogger : LogBase{public override void Log(string message){lock (lockObj){EventLog m_EventLog = new EventLog("");m_EventLog.Source = "IDGEventLog";m_EventLog.WriteEntry(message);}}}public class DBLogger : LogBase{string connectionString = string.Empty;public override void Log(string message){lock (lockObj){//Code to log data to the database}}}
}

创建LogHelper

用来实现写入 FileLogger、DBLogger、EventLogger

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DataLogger
{public static class LogHelper{private static LogBase logger = null;public static void Log(LogTarget target, string message){switch (target){case LogTarget.File:logger = new FileLogger();logger.Log(message);break;case LogTarget.Database:logger = new DBLogger();logger.Log(message);break;case LogTarget.EventLog:logger = new EventLogger();logger.Log(message);break;default:return;}}}
}

以上已经搭建好日志层
下面调用LogHelper,就能实现日志记录

try
{  MyWrite(process, $"时间:{DateTime.Now.ToString("yyyy-MM-dd tt hh:mm:ss")},同步数据开始,请等几分钟…");
}
catch (Exception ex)
{ClearMemory();LogHelper.Log(LogTarget.File, $"接口{process}:时间:{DateTime.Now.ToString("yyyy--MM-dd HH:mm:ss:fff")},错误:{ex.Message}");
}

效果显示
在这里插入图片描述


http://www.ppmy.cn/news/363431.html

相关文章

linux日志文件存在哪里,linux系统日志在哪里

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。 1、大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发…

windows系统日志查看

1. 右键“我的电脑”&#xff0c;选择管理&#xff0c;打开「事件查看器」&#xff1b;或者同时按下 Windows键 R键&#xff0c;输入“eventvwr.msc”直接打开「事件查看器」。 2、接下来你会在窗口中看到一个列表&#xff0c;包括 “关键字”、 “日期和时间”、“来源”、“…

Windows系统日志

目录 Windows系统日志 简介 分类 按照审核对象分类 查看系统日志方式 通过C盘路径查找 通过winr&#xff0c;输入eventvwr.msc进入事件查看器 事件类型 事件ID 日志保存格式 登录类型 事件日志分析 手动日志分析 使用日志分析工具分析日志&#xff08;Log Parser&a…

linux系统日志

原文 linux系统日志 1简介 linux系统拥有非常强大的日志功能&#xff0c;保存着几乎有所有操作记录&#xff0c;包括内核和程序产生的各种错误信息&#xff0c;警告信息或其他提示信息&#xff0c;对这些信息管理员了解系统的运行状态和分析问题非常有用。可以从日志文件中获…

Windows系统服务器系统日志在哪里查看?

Windows系统服务器系统日志在哪里查看&#xff1f; 服务器日志是什么&#xff1f; 服务器日志(server log)是一个或多个由服务器自动创建和维护的日志文件&#xff0c;其中包含其所执行活动的列表 简单来说&#xff0c;服务器的日记就是记录网站被访问的全过程&#xff0c;什…

【1171. 从链表中删去总和值为零的连续节点】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个链表的头节点 head&#xff0c;请你编写代码&#xff0c;反复删去链表中由 总和 值为 0 的连续节点组成的序列&#xff0c;直到不存在这样的序列为止。 删除完毕后&#xff0c;请你返回最终…

用户登录Linux系统过程、以及Linux启动过程

目录 用户登录Linux系统过程、以及Linux启动过程 用户登录Linux系统过程 Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有&#xff1a; Linux用户登入系统过程实质是系统读取、核对这几个文件的过程,其过程如下&#xff1a; Linux启动过程 &#xff08;简…

谷歌地球图像下载

做模型经常要出模型区图&#xff0c; 遥感图片是最好的底图&#xff0c; Google Earth是最好的来源。 下载GE图像的时候&#xff0c; 经常出现&#xff1a;“图像正在准备中&#xff0c;这可能需要一分钟”的提示。 解决方案&#xff1a; 1. 工具-选项中 高速缓存选项卡&…