1. 安装
-
Nuget包管理,在搜索框中输入Common.Logging.Log4Net,我安装的Common.Logging.Log4Net1213的包。
-
程序集中自动添加:Common.Logging.dll、Common.Logging.Core.dll、Common.Logging.log4net1213.dll、log4net.dll。如果是手动添加,需要特别注意Common.Logging.log4net1213.dll、log4net.dll的版本必须匹配。
2.工程内配置
- 写配置文件,加入到App.config文件.
<!--配置节声明区域-->
<configSections>
<!--Log4Net配置-->
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<!--配置节设置区域开始-->
<!--[DEBUG < INFO < WARN < ERROR < FATAL]-->
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1215">
<!--表示log4net的配置直接写在配置文件里-->
<!--<arg key="configType" value="INLINE"/>-->
<!--log4net使用独立的配置文件-->
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="log4net.config" />
</factoryAdapter>
</logging>
</common>
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
以上配置表示将log4net的配置放到单独的文件中
<!--<arg key="configType" value="INLINE" />-->
这个表示log4net的配置直接写在配置文件里
- 在工程中AssemblyInfo.cs文件的最下面加上:
//log4net从配置文件中读取配置
[assembly: log4net.Config.XmlConfigurator( ConfigFileExtension = "config", Watch = true )]
3.log4net.config配置
配置文件如下(这里是个很简单的文件,只输出ERROR信息):
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="RollingFileAppenderError" type="log4net.Appender.RollingFileAppender">
<file value="log/tfError.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5120KB" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
<!--<conversionPattern value="%date %-5level %logger [%property{NDC}] - %message%newline" />-->
<conversionPattern value="[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c:%-4L - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppenderError" />
</root>
</log4net>
4. 日志输出使用示例
using Common.Logging;
using System;
namespace DATA
{
class LogTest
{
private static readonly ILog LogUtility = LogManager.GetLogger( typeof( BaseDao ) );
public void logPrint()
{
LogUtility.Error( "ERROR msg" );
}
}
}