uhu*_*uhu 4 c# logging auditing winforms
初始情况:在后台有一个包含许多对话框和Oracle数据库的大型Winform应用程序.现在需要实现审计日志记录功能,该功能在一些对话框中记录用户的数据更改(之前/之后)(以供公司审计部门稍后审计).您将如何集成此类日志记录功能?顺便说一下,日志信息应该保存在数据库(历史表)中,Winform-solution的管理应用程序应该为日志记录数据提供一个浏览器对话框.
是否存在可以使用的现有解决方案或框架.在这种情况下使用像NLOG这样的日志框架是否有意义,或者从头开始实现这样的特定日志记录更好?
我创建了一个非常简单的静态类,名为Logger,它只有一个方法,它接受一个字符串并使用StreamWriter记录当前的DateTime.我喜欢编写自己的日志,因为它允许我按照我想要的格式化输出.以下是我的样子的简短示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace LoggerSpace
{
public static class Logger
{
private static StreamWriter swLog;
private const string sLOG_FILE_PATH = "log.txt";
static Logger()
{
Logger.OpenLogger();
}
public static void OpenLogger()
{
Logger.swLog = new StreamWriter(sLOG_FILE_PATH, false);
Logger.swLog.AutoFlush = true;
}
public static void LogThisLine(string sLogLine)
{
Logger.swLog.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString() + "\t:" + "\t" + sLogLine);
Logger.swLog.Flush();
}
public static void CloseLogger()
{
Logger.swLog.Flush();
Logger.swLog.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您必须确保捕获适当的异常,并在表单关闭时调用close方法.同样,我喜欢它,因为它很简单,我可以根据自己的喜好对其进行格式化.我也看到过人们写的地方,在他们记录的行中的某些关键字生成空格的地方.只是一个建议,有很多选择.
| 归档时间: |
|
| 查看次数: |
7608 次 |
| 最近记录: |