golang第三方日誌包seelog配置檔案詳解
開發任何專案,都離不開日誌,配好自己的專案日誌輸出,往往是開發專案的前提。在golang中,seelog
應該是比較有名的日誌處理包了,功能非常強大,seelog
官方文件
一、seelog主要功能
下面我們看看seelog
有啥強大
- 設定不同級別的日誌;
- 輸出到終端或檔案;
- 過濾指定級別日誌;
- 定義多種不同的日誌輸出格式;
- 根據觸發日誌的檔名或者函式名來區別輸出日誌;
- 通過 SMTP 或 TCP 轉發日誌(網路轉發日誌);
- 滾動日誌檔案(過期日誌自動清除)。
二、安裝seelog
$ go get github.com/cihub/seelog
三、使用seelog
我們先看看一個官方的demo
package main
import (
log "github.com/cihub/seelog"
)
func main() {
defer log.Flush()
log.Info("Hello from Seelog!")
}
很簡單是吧,匯入包,就直接可以用了,下面我們看看如何通過配置檔案高度定製我們的日誌。
import (
log "github.com/cihub/seelog"
)
func SetupLogger() {
logger, err := log.LoggerFromConfigAsFile("seelog.xml" )
if err != nil {
return
}
log.ReplaceLogger(logger)
}
seelog
的配置檔案一般用xml,下面我們看seelog.xml
配置檔案的大體框架
<seelog>
<exceptions>
<exception ... />
<exception ... />
...
</exceptions>
<outputs>
<splitter>
<console/>
<file ... />
<rollingfile ... />
<smtp>
...
</smtp>
<buffered>
...
</buffered>
<conn ... />
</splitter>
<filter>
...
</filter>
</outputs>
<formats>
<format ... />
<format ... />
...
</formats>
</seelog>
<!-- type 設定記錄器型別 https://github.com/cihub/seelog/wiki/Logger-types-reference
minlevel 設定日誌最低級別; maxlevel 設定日誌的最高級別
也可以通過 <seelog levels="trace,info,critical"> 設定日記級別 -->
<seelog type="asynctimer" asyncinterval="5000000" minlevel="debug" maxlevel="error">
<exceptions>
<!-- <exception> 是為特定的程式檔案(filepattern)或函式(funcpattern)設定特殊的日誌規則 -->
<exception funcpattern="*main.test*Something*" minlevel="info"/>
<exception filepattern="*main.go" minlevel="error"/>
</exceptions>
<!-- <outputs> formatid 指定日誌輸出的格式(格式在<formats>標籤中定義) -->
<outputs formatid="main">
<!-- <console> 標籤表示輸出到終端 -->
<console/>
<!-- <splitter> 用於細分<outputs>日誌格式,內部支援:file(檔案), rollingfile(滾動檔案,自動清除過期),
buffered(日誌寫到記憶體再寫到檔案), smtp(傳送日誌到郵件), con(網路轉發) -->
<splitter formatid="format1">
<!-- log.log, log2.log將按<formats>標籤中的id="format1"格式寫入 -->
<file path="log.log"/>
<file path="log2.log"/>
</splitter>
<splitter formatid="format2">
<file path="log3.log"/>
<file path="log4.log"/>
</splitter>
<!-- <rollingfile>滾動檔案(定期清除過期日誌)
formatid: 指定日誌格式; type="size" 按大小; maxsize: 單日誌檔案最大大小; maxrools: 最大檔案數 -->
<rollingfile formatid="someformat" type="size" filename="./log/roll.log" maxsize="100" maxrolls="5" />
<!-- <buffered> 將日誌先存在記憶體中,定期寫入檔案,適合日誌併發量較大或 IO 比較緊張的場合
size: 快取大小; flushperiod: 快取間隔(毫秒) -->
<buffered formatid="testlevels" size="10000" flushperiod="1000">
<file path="./log/bufFileFlush.log"/>
</buffered>
<!-- <filter>用於單獨處理某級別日誌
過濾日誌,把級別是error的通過郵件smtp方式傳送出去(一般會發給相應的運維人員) -->
<filter levels="error">
<file path="./log/error.log"/>
<smtp senderaddress="[email protected]"
sendername="Automatic notification service"
hostname="mail.none.org"
hostport="587"
username="nns"
password="123">
<recipient address="[email protected]"/>
<recipient address="[email protected]"/>
</smtp>
<!-- 按tcp4網路協議傳送日誌 -->
<conn net="tcp4" addr="server.address:5514" tls="true" insecureskipverify="true" />
</filter>
</outputs>
<!-- <formats> 定製日誌的輸出格式
https://github.com/cihub/seelog/wiki/Format-reference -->
<formats>
<format id="main" format="%Date(2006 Jan 02/3:04:05.000000000 PM MST) [%Level] %Msg%n"/>
<format id="someformat" format="%Ns [%Level] %Msg%n"/>
<format id="testlevels" format="%Level %Lev %LEVEL %LEV %l %Msg%n"/>
<format id="usetags" format="<msg>%Msg</time>"/>
<format id="format1" format="%Date/%Time [%LEV] %Msg%n"/>
<format id="format2" format="%File %FullPath %RelFile %Msg%n"/>
</formats>
</seelog>
初次接觸難免會覺得配置檔案的內容有點多,難以理解,其實只要我們理解它配置檔案的大體框架,然後自己試著更改配置檔案,看看輸出什麼,就很快明白了。
<!-- 我只需要把日誌按指定格式輸出到終端 -->
<seelog type="asynctimer" asyncinterval="1000000" minlevel="debug" maxlevel="error">
<outputs formatid="main">
<!-- 僅輸出到終端 -->
<console/>
</outputs>
<formats>
<!-- 設定格式 -->
<format id="main" format="%UTCDate %UTCTime - [%LEV] - %RelFile - l%Line - %Msg%n"/>
</formats>
</seelog>
<!-- ****** 我是分割線 ***** -->
<!-- 現在我想把日誌輸出到終端同時也把日誌輸出到檔案 -->
<seelog type="asynctimer" asyncinterval="1000000" minlevel="debug" maxlevel="error">
<outputs formatid="main">
<console/>
<!-- 輸出到檔案,且不同於終端的日誌格式 -->
<splitter formatid="format1">
<file path="log.log"/>
</splitter>
</outputs>
<formats>
<!-- 設定格式 -->
<format id="main" format="%UTCDate %UTCTime - [%LEV] - %RelFile - l%Line - %Msg%n"/>
<format id="format1" format="%Date(2006 Jan 02/3:04:05.000000000 PM MST) [%Level] %Msg%n"/>
</formats>
</seelog>
相關推薦
golang第三方日誌包seelog配置檔案詳解
開發任何專案,都離不開日誌,配好自己的專案日誌輸出,往往是開發專案的前提。在golang中,seelog應該是比較有名的日誌處理包了,功能非常強大,seelog官方文件 一、seelog主要功能 下面我們看看seelog有啥強大 設定不同級別的日誌;
日誌相關---log4j2配置檔案詳解
一、關於配置檔案的名稱以及在專案中的存放位置 log4j 2.x版本不再支援像1.x中的.properties字尾的檔案配置方
[轉]log4j日誌資訊配置檔案詳解
使用log4j 記錄日誌甚是方便,其提供了兩種日誌配置方式,log4j.propertes和log4j.xml,這篇檔案先貼出log4j.properties配置方式 1、log4j.properties檔案配置簡析 下面給出了log4j.properties檔案常用的一
Log4j的日誌輸出級別和配置檔案詳解
一,Log4j的日誌輸出級別 Log4j由三個重要的元件構成:日誌資訊的優先順序,日誌資訊的輸出目的地,日誌資訊的輸出格式。日誌資訊的優先順序從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日誌資訊的重要程度;日誌資訊的輸出目的地指定了日誌將
log4j日誌配置檔案詳解
部落格來由,前一段時間,架構組統一修改了log4j的檔案,修改之後,單元測試日誌就打印不出來了。所以就學習了一下log4j.properties檔案的配置。 1.log4j是什麼?
日誌系列2——logback配置檔案詳解
[toc] ### 1.logback 配置檔案的組成 #### 1.1root節點 root 節點是必選節點,用來指定最基礎的日誌輸出級別,只有一個 level 屬性,用於設定列印級別,可選如下:`TRACE`,`DEBUG`,`INFO`,`WARN`,`ERROR`,`ALL`,`OFF`。
三大框架(ssh)學習——配置檔案詳解(一)
配置檔案詳解 指定web應用預設字符集 <constant name="struts.i18n.encoding" value="gbk" /> 此配置相當於: request.setCharacterEncoding(“gbk”); r
三大框架(ssh)學習——配置檔案詳解(二)
多配置檔案實現 專案經常需要多人協作開發,但是如果大家都是用同一個struts.xml檔案,會互相影響不利於開發的正常開展。這樣,我們可以通過<include>元素指定多個配置檔案。 可以在src下面建立多個struts配置檔案。然後再struts.xml中分別引入: str
Nginx配置配置檔案詳解
文章目錄 配置檔案 nginx.conf配置檔案詳解 用於除錯、定位問題的配置引數 正常執行必備的配置引數 優化效能的配置引數 事件相關配置 Fastcgi相關配置引數 常需要調整的引數 nginx作為web伺服器時使
Hibernate_day01---Hibernate環境搭建、配置檔案詳解、核心api介紹
JavaEE三層結構對應的框架 1) web層:struts2框架 2) service層:spring框架 3)dao層:hibernate框架 -- 對資料庫進行crud操作 什麼是框架: 可複用的設計構件 作用:可以少寫一部分程式碼。使用框架寫程式,會幫我們實現一部
scrapy settings配置檔案詳解
# -*- coding: utf-8 -*- # Scrapy settings for step8_king project # # For simplicity, this file contains only settings considered important or # comm
keepalived介紹及配置檔案詳解
keepalived介紹 Keepalived軟體起初是專為LVS負載均衡軟體設計的,用來管理並監控LVS集群系統中各個服務節點的狀態,後來又加入了可以實現高可用的VRRP功能。因此,Keepalived除了能夠管理LVS軟體外,還可以作為其他服務(例如:Nginx、Hapr
Maven的pom.xml配置檔案詳解
轉自: Maven的pom.xml配置檔案詳解 <!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。--> &
【MyBatis Generator】程式碼自動生成工具 generatorConfig.xml配置檔案詳解
MyBatis Generator官網地址:http://www.mybatis.org/generator/index.html MyBaris Generator中文地址:http://mbg.cndocs.ml/ 在MBG中,最主要也最重要的,就是generatorConfig.xml
轉:ssm spring+springmvc+mybatis中的xml配置檔案詳解
這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~~~ 首先 這篇文章暫時只對框架中所要用到的配
Spring Boot(二)配置檔案詳解
簡介 Spring Boot使用“習慣由於配置”(專案中存在大量預設的配置,而且內建tomcat)的理念,讓你的無需手動進行配置就可以將專案執行起來。使用Spring Boot很容易建立一個獨立執行的、準生產級別的Spring框架的專案。同時,Spring Boot還提供一個全域性配置檔案對一些
Apache httpd.conf配置檔案詳解
常用配置指令說明 1. ServerRoot:伺服器的基礎目錄,一般來說它將包含conf/和logs/子目錄,其它配置檔案的相對路徑即基於此目錄。預設為安裝目錄,不需更改。 語法:ServerRoot directory-path 如: ServerRoot "/usr/local/ap
spring配置檔案詳解--真的蠻詳細
spring配置檔案詳解--真的蠻詳細 轉自: http://book.51cto.com/art/201004/193743.htm 此處詳細的為我們講解了spring2.5的實現原理,感覺非常有用
Java程式設計師從笨鳥到菜鳥之(五十三)細談Hibernate(四)Hibernate常用配置檔案詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
mosquitto配置檔案詳解
安裝完成之後,所有配置檔案會被放置於/etc/mosquitto/目錄下,其中最重要的就是Mosquitto的配置檔案,即mosquitto.conf,以下是詳細的配置引數說明。 # ===========================================================