Log2Window是一款開源的日誌查詢軟件.
支持 log4net, nlog, eventLog, log4j 和log4cxx等日誌記錄組件.
項目主頁爲: https://github.com/alanthinker/Log2Window
國內下載地址爲: http://chess.stk.me/chess/download/Log2Window/Log2Window.zip
該軟件改編自Log2Console, 徹底重寫了內部邏輯. 大幅的改進了性能和穩定性, 並增長了一些新功能, 修正若干錯誤.git
Log2Window在普通PC上每秒中能夠處理100萬條以上的記錄. 好比根據日誌名稱, 消息內容, 日誌級別等條件進行過濾等. 刪除某些名稱的日誌等. 新日誌刷新過快時, 能夠暫停刷新新日誌, 以便查看.(後臺仍在接收日誌, 恢復暫停後即會顯示)
Log2Window接收新日誌的性能也很是好. 每秒能夠新接收10萬條以上的記錄而不產生任何延遲和阻塞.
Log2Window既能夠接收網絡上TCP, UDP協議發送的日誌, 也能夠實時監控日誌文件的內容. (均要求日誌以log4j的xml格式化保存.) github
TCP 網絡傳送方式:緩存
首次打開軟件時, 軟件會自動彈出Receiver配置界面.
建議添加TCP協議的receiver.
對於NLog, 配置一個tcp的target, 並將日誌記錄到此target便可.網絡
<target name="TcpOutlet" xsi:type="NLogViewer" encoding="utf-8" address="tcp://localhost:4505"/>
對於log4net, 須要用到一個自定義的Appender. 該Appender的源代碼已經包含在Log2Window安裝目錄中的ExampleProject\TestLog4net project . 該自定義Appender異步發送日誌, 不會由於網絡問題而阻塞業務邏輯. 並且在消息沒法發送時能夠緩存10000條日誌. 等網絡恢復後再發送.(用戶能夠修改此Appender的代碼來調整緩存數量.)app
Log4net的appender配置以下:dom
<appender name="tcpAppender" type="AlanThinker.MyLog4net.TcpAppender"> <remoteAddress value="127.0.0.1" /> <remotePort value="4505" /> <encoding value="utf-8"></encoding> <layout type="AlanThinker.MyLog4net.MyXmlLayoutSchemaLog4j" > <!--Set these switch to false to impove performance.--> <LocationInfo value="false" /> <Show_Hostname_Appdomain_Identity_UserName value="false" /> <ShowNDC value="false" /> <ShowProperties value="false" /> </layout> </appender>
2016-11-30 15:18:15,703 [10] DEBUG Test.Program - This is a simple log!
NLog配置方式: ( !!! 注意. 不要改變layout的格式)異步
<target name="file" xsi:type="File" encoding="utf-8" fileName="${basedir}/log/patternFile.log" layout="${longdate} [${threadid}] ${pad:padding=-5:fixedlength=true:inner=${level:uppercase=true}} ${logger} - ${message}" />
log4net配置方式: ( !!! 注意. 不要改變layout的格式)
<appender name="fileLog4j" type="log4net.Appender.FileAppender"> <file value="log/fileLog4j.log" /> <encoding value="utf-8"></encoding> <appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender> 或者 <appender name="rollingFileLog4j" type="log4net.Appender.RollingFileAppender,log4net" > <File value="log/rollingFileLog4j.log" /> <Encoding value="utf-8" /> <AppendToFile value="true" /> <RollingStyle value="Composite" /> <DatePattern value=".yyyy.MM.dd."log"" /> <MaximumFileSize value="20MB" /> <maxSizeRollBackups value="10" /> <!--file number increase after the file"s size exceeds the MaximumFileSize.--> <CountDirection value="1" /> <StaticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender>