关于 log4net 日志功能使用方法
所需文件( log4net.config log4net.dll log4net.xml LogHelper.cs)
(1) 添加dll到自己的项目 在项目树》 右键引用添加 》浏览找到本地准备好的DLL文件 log4net.dll
(2)增加配置文件 在项目名称》右键》新建项》找到》应用程序配置文件》将名称修改为 log4Net.config >确认添加按钮即可
(3)设置配置文件的属性,特别重要。右击log4net.config >属性 》复制到输出目录》选择始终复制或者较新复制,这样才正常
(4)设置Assemblyinfo.cs 里面增加一行代码 意思是将文件引用进程序
[assembly: log4net.Config.XmlConfigurator(ConfigFile ="log4net.config",ConfigFileExtension ="config",Watch =true)]
(5)增加Helper类 特别注意: 如果不在一个项目内可以修改空间名称 比如放在DAL项目内, 那么第4步就需要在DAL下面添加。config配置文件也要放在DAL下面
(6)在BLL里面需要增加静态业务类 LogHelperManager.cs 因为各个窗口引用了BLL。所以其他窗口可以直接使用日志功能
LogHelper.Info("普通日志测试");
LogHelper.Error("系统错误日志测试",ex);
代码如下
//***********************************************业务类方法代码*************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAL;
namespace BLL
{
public static class LogHelperManager
{
public static void Info(string message)
{
LogHelper.Info(message);
}
public static void Error(string message, Exception ex)
{
LogHelper.Error(message, ex);
}
}
}
//***************************************LogHelper类代码******************************************************8
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAL
{
public class LogHelper
{
/// <summary>
/// 普通日志 方法是静态方法 名称首字母必须大写
/// </summary>
/// <param name="message">日志消息</param>
public static void Info(string message)
{
//先实例化info
log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");
if (log.IsInfoEnabled)//判断状态
{
log.Info(message);
}
log = null;
}
public static void Error(string message, Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger("Error");//判断日志文件夹是否存在
if (log.IsErrorEnabled)
{
log.Error(message, ex);
}
log = null;
}
}
}
//***************************config配置文件*************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<root>
</root>
<logger name="Error">//等级
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="InfoLog">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
//修改以下可以修改信息的格式 需要查阅log4net 官方文档
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" type="" value="Log/Error/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd".ini"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" type="" value="Log/Info/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd".ini"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
</layout>
</appender>
</log4net>
</configuration>