2024年1月30日 星期二

log4net 無法產出log文字檔

 平常在專案時常使用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文字檔

 

 

沒有留言:

張貼留言

MS-SQL查詢指定資料表的結構

如果今天要修改一個欄位的長度,再來查查看是否有修改成功  1. MS Sql 修改欄位語法 ALTER TABLE MyTable ALTER Column Column_1 nvarchar(10) NOT NULL 2. 方法1 -- 查詢指定資料表的結...