C#使用log4net的3種調用方法
第一步:下載log4net
右鍵項目引用,進入管理NuGet包。

搜索log4net,下載安裝。

第二步:創(chuàng)建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");
}運行結果:

方法二:項目中創(chuàng)建新的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日志輸出:在項目中創(chuàng)建新的log4net.config文件");
}運行結果:

方法三:顯示調用配置文件
首先創(chuàng)建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的資料請關注腳本之家其它相關文章!

