平常在專案時常使用log4net來記錄log,但這次寫了一個console的程式卻發現無法產出log檔連
console 也沒有任何的資訊...
以下是解決方法
1.先在 AssemblyInfo.cs的這支程式加入
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
2.在app.config上加入
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
接下來再加入
<log4net>
<!--輸出到Console-->
<appender name="A1" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- 輸出到檔案 -->
<appender name="A2" type="log4net.Appender.RollingFileAppender">
<file value="D:/log/FE_Check_II/" />
<!-- 輸出檔名 -->
<staticLogFileName value="false" />
<appendToFile value="true" />
<encoding value="utf-8" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd.'TXT'" />
<!-- <rollingStyle value="Composite" /> -->
<maximumFileSize value="10MB" />
<!-- 每個檔案最大size -->
<maxSizeRollBackups value="-1" />
<!-- <rollingStyle value="Date" /> -->
<!-- <datePattern value="yyyyMMdd" /> -->
<layout type="log4net.Layout.PatternLayout">
<!-- <conversionPattern value="%date %level %logger (%file:%line) - %message%newline" /> -->
<conversionPattern value="%d{DATE} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<!-- 輸出訊息等級 -->
<level value="DEBUG" />
<appender-ref ref="A1" />
<appender-ref ref="A2" />
</root>
</log4net>
3.在Program.cs
加入
public static log4net.ILog logger = log4net.LogManager.GetLogger("ProgramLog");//取得一個日誌記錄
再來只要
logger.Debug("您要顯示的訊息");
成功搞定產出log文字檔