项目的日志组件对与开发是非常有必要的,这样既方便前期的开发测试也方便项目后期的项目维护,这里简单记录下c# log4net配置使用方法,以便查阅
1.右键解决方案,选择管理NuGet程序包
2.安装log4net,正常会在bin目录生成log4net.dll
3.编辑项目配置文件,App.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log//LogError//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!—此处按日期产生文件夹,文件名固定-->
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt""/>
<!-- 按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite]) -->
<param name="RollingStyle" value=" Composite " />
<!-- 每个文件的大小。只在混合方式与文件大小方式下使用, 超出大小后在所有文件名后自动增加正整数重新命名 -->
<param name="maximumFileSize" value="10KB" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="2" />
<!--记录的格式-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log//LogInfo//" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="maximumFileSize" value="10MB" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
<param name="RollingStyle" value="Composite" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>
4.在Assemblyinfo.cs添加以下代码
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
5.封装一个LogHelper.cs日志类,以便管理log4net
public class LogHelper
{
public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror");
private LogHelper()
{
}
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
public static void WriteLog(string info)
{
if (Loginfo.IsInfoEnabled)
{
Loginfo.Info(info);
}
}
public static void WriteLog(string info, Exception ex)
{
if (Logerror.IsErrorEnabled)
{
Logerror.Error(info, ex);
}
}
}
6.调用 LogHelper.WriteLog(**)接口,便会在程序目录生成log4net的日志文件了