C#使用log4net的3种调用方法
作者:summer_top
log4net是一个用于记录日志的开源框架,它是C#中最常用的日志记录工具之一,本文给大家介绍了C#使用log4net的3种调用方法,通过图文和代码给大家讲解的非常详细,需要的朋友可以参考下
第一步:下载log4net
右键项目引用,进入管理NuGet包。
搜索log4net,下载安装。
第二步:创建LogHelper类
public class LogHelper { private LogHelper() { } public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void SetConfig() { log4net.Config.XmlConfigurator.Configure(); } public static void SetConfig(FileInfo configFile) { log4net.Config.XmlConfigurator.Configure(configFile); } public static void WriteLog(string info) { if (loginfo.IsInfoEnabled) { loginfo.Info(info); } } public static void WriteLog(string info, Exception se) { if (logerror.IsErrorEnabled) { logerror.Error(info, se); } } }
第三步:配置Log4Net并输出日志,下面介绍三种调用方法
方法一:在已有App.config中配置Log4Net
App.config代码如下。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!-- log4net的定义 --> <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="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" /> </layout> <!--< > = <> %n = 回车--> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /> </layout> </appender> </log4net> </configuration>
在项目的 AssemblyInfo.cs 文件中注册Config文件
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
主程序调用:
public MainWindow() { InitializeComponent(); LogHelper.WriteLog("我是LogHelper日志输出:在已有App.config中配置Log4Net"); }
运行结果:
方法二:项目中创建新的log4net.config文件
首先右键项目,添加新建项,添加新的应用程序配置文件log4net.config,log4net配置信息和方法一相同。
log4net.config代码如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <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="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" /> </layout> <!--< > = <> %n = 回车--> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /> </layout> </appender> </log4net> </configuration>
再设置log4net.config的属性:将 “复制到输出目录” 的值改为 如果较新则复制。
然后在项目的 AssemblyInfo.cs 文件中注册Config文件:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
ConfigFile: 配置文件名和路径,包括扩展名,文件相对于程序的根目录。
ConfigFileExtension:配置文件的后缀名,缺省默认时'config',此属性不可和ConfigFile属性公用。
最后主程序调用:
public MainWindow() { InitializeComponent(); LogHelper.WriteLog("我是LogHelper日志输出:在项目中创建新的log4net.config文件"); }
运行结果:
方法三:显示调用配置文件
首先创建log4net.xml配置文件,代码如下。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <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="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" /> </layout> <!--< > = <> %n = 回车--> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /> </layout> </appender> </log4net> </configuration>
使用LogHelper类中SetConfig(FileInfo configFile)方法配置log4net。 log4net.Config.XmlConfigurator.Configure(FileInfo(path)),path为log4net.xml的全路径。
主程序调用:
public MainWindow() { InitializeComponent(); LogHelper.SetConfig(new FileInfo("D:\\Log4NetDemo\\log4net.xml")); LogHelper.WriteLog("我是LogHelper日志输出:显示调用"); }
运行结果:
三种调用方法,都能够正常打印日志。
以上就是C#使用log4net的3种调用方法的详细内容,更多关于C#使用log4net的资料请关注脚本之家其它相关文章!