跳到主要內容

[.Net] log4net

如果開發過java程式的人大概都知道log4j是個很好用的日誌工具,
而同樣的apache project也為.net開發的log4net的元件相當的好用也很容易設定

1.首先到log4net網頁下載
目前最新的是log4net 1.2.10 版本

2.解壓縮後會在\bin資料夾內,發現很多版本
基本的使用可以用net\release\下的log4net.dll, log4net.xml

3.將上述的兩個檔案複製到你的專案資料夾中
(其實不複製也可以 只是放在一起比較好管理)

4.將log4net.dll 加入參考

5.設定
A. 如果是開發win 或console APP
a. 先在專案中加入一個app.config 並打開檔案
內加入以下內容
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" /> 'output level
<appender-ref ref="rollingFile" />
<appender-ref ref="consoleApp" />
</root>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="C:\log.txt" /> '檔案位置
<param name="AppendToFile" value="True" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value="&#13;&#10;---header---&#13;&#10;" />
<param name="Footer" value="&#13;&#10;---footer---&#13;&#10;" />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>



b.程式中加入如下面範例

Imports log4net.Config
Imports log4net
<Assembly: log4net.Config.XmlConfigurator()>
Module Module1
Private log As log4net.ILog = LogManager.GetLogger("message")
Sub Main()
  log.Debug("Form1_Load")
End Sub
End Module


c.執行後你就可以在你設定的地方看到log了

B.如果是開發web的架構的話
a.打開web.config
然後一樣在內 加上以下code
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="f:/logfile.log"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger %file%line [%property{NDC}]%newline %message%newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>



b.打開或是新增一個Global.asax在修改 Application_Start method內容

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' 應用程式啟動時執行的程式碼
log4net.Config.XmlConfigurator.Configure()
End Su
b


c.然後再要使用的class中以下列方式宣告
Private ReadOnly log As ILog = LogManager.GetLogger("_Default")
這樣就可已在class中使用了

相關的設定用法和參考可以看以下link
log4net官方網站
SDK Reference



config的寫法 可以看下載檔案內所附的log4net.xml

留言

這個網誌中的熱門文章

[WEB]連線 HTTPS 網站發生驗證失敗導致基礎連接已關閉

某支透過 WebClient 物件去呼叫第三方API的程式,突然有天無法使用 經過測試出現下列的錯誤 基礎連接已關閉: 傳送時發生未預期的錯誤。 InnerException : 驗證失敗,因為遠端群體已經關閉傳輸資料流。 原來是第三方的服務已經不支援 TLS 1.0 我方的程式是用.net Framework 4.0開發了 得強制讓webclient改用 TLS 1.1 或 TLS 1.2 感謝黑大提供解決方法 在程式中加入 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12  的設定就解決了這個問題 WebClient wc = new WebClient(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 參考資料:暗黑執行緒

[SQL] SQL依照你的排序條件 找出目前資料的前一筆與下一筆。 Find Pre and Next DataRows of current Datarow by your order condition

有時候需要用SQL找出前一筆跟後一筆資料 用SQL的TOP是沒有辦法做到 這個時候就可以這個語法 select * from ( SELECT TOP 1 * FROM [Article] where Poid {CurrentPoid} order by CreateDate ASC) t2 找出目前PK id前一個與後一個的資料(依照想要排序順序) 那如果指示想要一個資料行呈現的話 可以改用下面的SQL語法 讓這兩筆資料join在同一筆 select Pre.*,Nex.* from (SELECT TOP 1 * ,1 tID FROM [dbo].[Article] where Poid {CurrentPoid} order by CreateDate ASC) Nex on Pre.tID=Nex.tID

Win10電腦 強制開啟IE瀏覽器 by VB script

 用Notapad寫下以下的內容 With CreateObject("InternetExplorer.Application") .visible = True .Navigate [Url]           .Left = 0           .Top = 0           .Height = 1024           .Width = 1280 End With 然後存檔成 .vbs 檔案 之後點選檔案就會自動啟動IE 目前測試過在WIN10 版本能正常執行