Winform 中 Log4net 配置寫不同文件


以下配置了二種寫文件,第一種根據日期寫文件yyyyMMdd.txt,第二種是寫固定文件login.txt。


1, 下載Log4net組件:
http://logging.apache.org/log4net/download.html

2,將log4net.dll加到項目引用中;
 
3,在app.config中添加相關配置信息,文件內容如下:

   <?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="ChinaBank.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"/>
  </configSections>
  <log4net>
    <logger name="Daily.Logging">
      <level value="INFO"/>
      <appender-ref ref="DailyAppender" />
    </logger>
    <logger name="Login.Logging">
      <level value="INFO"/>
      <appender-ref ref="LoginAppender" />
    </logger>
    <appender name="DailyAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" value="Logs/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd.'txt'" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%m%n" />
      </layout>
    </appender>
    <appender name="LoginAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" value="Logs/login.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d|%m|%n" />
      </layout>
    </appender>
  </log4net>
<!--這里為appSettings等其它節點信息-->
</configuration>
 
 
4,在AssemblyInfo.cs最下面添加(其中XXXXX.exe.config為app.config在bin\Debug中生成的文件名,以實際為准):
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "./XXXXX.exe.config", ConfigFileExtension = "config", Watch = true)]
 


5,在項目中使用Log4net:

//根據日期寫文件yyyyMMdd.txt
log4net.ILog log = log4net.LogManager.GetLogger("Daily.Logging");  
log.Info("這是一條普通信息");    

//寫固定文件login.txt
log4net.ILog log2 = log4net.LogManager.GetLogger("Login.Logging");
log2.Info("用戶張三登錄");

 

--------------------------------------------------------------------------------------

備注:

1、以上是WinForm的配置,WebForm配置也一樣,只是換成web.config。

2、log4net的配置也可以單獨寫在一個配置文件中,如log4net.config。

下面為log4net.config例子:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<logger name="logging">
<level value="INFO"/>
<appender-ref ref="appender"/>
</logger>
<appender name="appender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="D:/logs/"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="'test_'yyyyMMdd.'txt'"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
</log4net>
</configuration>

打開項目目錄Properties里面的文件AssemblyInfo.cs,在最后面添加一行
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
說明:log4net.config放在項目根目錄,這里路徑就可以直接這樣寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM