您的位置:首页 > 数据库

Log4Net 自定义字段记录到数据库

2014-08-18 14:09 417 查看
大家可能都用过Log4net插件来记录日志,该插件默认提供了这几个字段@log_date,@exception, @thread, @log_level, @logger, @message, 但是这并不能完全满足我们日常记录日志的需求,我们可能需要扩展自己所需的其他字段,来记录到数据库。例如,对于用户操作日志,我们可能需要记录操作人员ID或者姓名,或者操作类型或者操作信息等。

下面简单地介绍一下Log4Net 自定义字段记录到数据库:

第一步,当然是创建对应的数据库日志表,如下图所示:

public class LogUtil    {
public LogUtil() { }

private static ActionLoggerInfo _message = null;
private static log4net.ILog _log;
public static log4net.ILog Log
{
get
{
if (_log == null)
{
_log = LogManager.GetLogger("OperateLogger");
}
return _log;
}
}
public static void Debug()
{
if (Log.IsDebugEnabled)
{
Log.Debug(_message);
}
}
public static void Error()
{
if (Log.IsErrorEnabled)
{
Log.Error(_message);
}
}
public static void Fatal()
{
if (Log.IsFatalEnabled)
{
Log.Fatal(_message);
}
}
public static void Info()
{
if (Log.IsInfoEnabled)
{
Log.Info(_message);
}
}
public static void Warn()
{
if (Log.IsWarnEnabled)
{
Log.Warn(_message);
}
}
/// <summary>
/// call Log method
/// </summary>
/// <param name="operateType"></param>
/// <param name="userId"></param>
/// <param name="userName"></param>
/// <param name="detail"></param>
/// <param name="level"></param>
public static void SaveMessage(int operateType, int userId, string userName, string detail, int level)
{
_message = new ActionLoggerInfo(operateType, userId, userName, detail);
switch (level)
{
case 1: Info(); break;
case 2: Warn(); break;
case 3: Error(); break;
case 4: Fatal(); break;
default: break;
}
}
}


View Code
到此完毕!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐