轉
http://blog.dic123.com/article.asp?id=109
很抱歉,這一段時間一直很忙,所以現在才回復.我看你上面的配置文件,猜想可能是你編寫配置文件的方式不正確.如果是在WinForm程序里使用,你可以按照這樣的步驟:
1.添加log4net引用
2.為項目新增一個文件,選取新增向導里的"應用程序配置文件",則項目里會增加一個app.config文件.當程序編譯后,會在你的執行目錄下生成一個<你的程序集名>.exe.config文件內容和本文件一樣
3.編輯app.config文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"
/>
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}>%n - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
這里請注意<configuration> 和<configurations>標簽不能少
4.編輯Assembly.cs文件,添加如下內容:
[assembly:log4net.Config.DOMConfigurator( ConfigFileExtension="config",Watch=true)]
5.在程序里添加如下代碼
log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");
log.Debug("test");
這時你再運行程序,就應該可以看到結果了,我試過如果設置
level = "OFF",則輸出是沒有結果的,改成"ALL"是有結果的
我在文章的開頭添加了示例代碼下載,你可以參考參考
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>


<log4net>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%utcdate{yyyy-MM-dd HH:mm:ss.ff}] [%thread] [%-5level] [%logger] - %message%newline" />
</layout>

</appender>


<!--
<logger name="WindowsFormsApplication1.Form1">
<appender-ref ref="B"
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</logger>
-->
<logger name="WindowsFormsApplication1">
<!-- <appender-ref ref="B" /> -->
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>

</configuration>
