The blog of Astro Qi
posts - 40, comments - 58, trackbacks - 0, articles - 0
BlogJava
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
SLF4J + logBack
Posted on 2010-11-17 14:33
Astro.Qi
閱讀(2548)
評(píng)論(0)
編輯
收藏
所屬分類:
Java
一. Log4j+commons-logging
? JAR包
commons-logging-1.1.jar
log4j-1.2.15.jar
? 配置文件
commons-logging.properties
log4j.xml
? commons-logging.jar包讀取commons-logging.properties中指定的log,自動(dòng)加載日志配置
在commons-logging+log4j組合中commons-logging.properties指定的日志為:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
? log4j指定具體日志輸出配置
? 如果未選用commons-logging,可以在啟動(dòng)項(xiàng)目中,主動(dòng)加載log4j的配置文件
二. slf4j+Logback
? JAR包
slf4j-api-1.5.2.jar
logback-classic-0.9.9.jar
logback-core-0.9.9.jar
? 配置文件
Logback.xml
? logback的加載采用編碼加載
Java代碼
String logbackCfg =
"/config/logback.xml"
;
URL logURL =
new
ClassPathResource(logbackCfg).getURL();
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
LoggerContext loggerContext = (LoggerContext) loggerFactory;
loggerContext.shutdownAndReset();
JoranConfigurator configurator =
new
JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(logURL);
三. Slf4j+log4j
? JAR包
slf4j-api-1.5.2.jar
slf4j-log4j12-1.5.2.jar
log4j-1.2.15.jar
? 配置文件
Logback.xml
四. Slf4j+logback+log4j
注:這種情況下是項(xiàng)目中有l(wèi)og4j輸出的日志以及l(fā)ogback數(shù)據(jù)的日志.老項(xiàng)目改造,log4j和logback共存的情況下.(當(dāng)選用spring+slf4j+logback的時(shí)候,spring的日志輸出是log4j的,這個(gè)時(shí)候采用這種配置.)
? JARbao
log4j-over-slf4j-1.5.2.jar
logback-classic-0.9.9.jar
logback-core-0.9.9.jar
slf4j-api-1.5.2.jar
? 配置文件
Logback.xml
? 配置加載
Java代碼
String logbackCfg =
"/config/logback.xml"
;
URL logURL =
new
ClassPathResource(logbackCfg).getURL();
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
LoggerContext loggerContext = (LoggerContext) loggerFactory;
loggerContext.shutdownAndReset();
JoranConfigurator configurator =
new
JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(logURL);
五. Log4j配置文件示例
Java代碼
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<!DOCTYPE log4j:configuration SYSTEM
"log4j.dtd"
>
<log4j:configuration xmlns:log4j=
"http://jakarta.apache.org/log4j/"
>
<!-- 控制臺(tái)輸出-->
<appender name=
"CONSOLE"
class
=
"org.apache.log4j.ConsoleAppender"
>
<param name=
"Target"
value=
"System.out"
/>
<param name=
"Threshold"
value=
"INFO"
/>
<layout
class
=
"org.apache.log4j.PatternLayout"
>
<param name=
"ConversionPattern"
value=
"%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n"
/>
</layout>
<!— 以下是過濾一些不需要輸出的log信息 -->
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"new a seq no spend"
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"new hi[type="
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"FileTransfer.execCommand()"
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
</appender>
<!--文件輸出 按照文件大小滾動(dòng)文件-->
<appender name=
"xxxx_file"
class
=
"org.apache.log4j.RollingFileAppender"
>
<param name=
"Append"
value=
"true"
/>
<param name=
"Threshold"
value=
"INFO"
/>
<param name=
"File"
value=
"xxxx.log"
/>
<param name=
"MaxFileSize"
value=
"100MB"
/>
<param name=
"MaxBackupIndex"
value=
"15"
/>
<layout
class
=
"org.apache.log4j.PatternLayout"
>
<param name=
"ConversionPattern"
value=
"%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n"
/>
</layout>
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"new a seq no spend"
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"new hi[type="
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
<filter
class
=
"org.apache.log4j.varia.StringMatchFilter"
>
<param name=
"StringToMatch"
value=
"FileTransfer.execCommand()"
/>
<param name=
"AcceptOnMatch"
value=
"false"
/>
</filter>
</appender>
<!-- 錯(cuò)誤輸出 過濾出錯(cuò)誤日志信息-->
<appender name=
"xxxx_error"
class
=
"org.apache.log4j.RollingFileAppender"
>
<param name=
"Append"
value=
"true"
/>
<param name=
"Threshold"
value=
"ERROR"
/>
<param name=
"File"
value=
"xxxx-error.log"
/>
<param name=
"MaxFileSize"
value=
"100MB"
/>
<param name=
"MaxBackupIndex"
value=
"4"
/>
<layout
class
=
"org.apache.log4j.PatternLayout"
>
<param name=
"ConversionPattern"
value=
"%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n"
/>
</layout>
</appender>
<!-- 根loggr -->
<root>
<appender-ref ref=
"CONSOLE"
/>
<appender-ref ref=
"xxxx_file"
/>
<appender-ref ref=
"xxxx_file_error"
/>
</root>
</log4j:configuration>
六. Logback配置文件示例
Java代碼
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<!DOCTYPE configuration>
<configuration>
<jmxConfigurator />
<!-- 控制臺(tái)輸出日志 -->
<appender name=
"STDOUT"
class
=
"ch.qos.logback.core.ConsoleAppender"
>
<layout
class
=
"ch.qos.logback.classic.PatternLayout"
>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{
36
} - %msg%n</pattern>
</layout>
</appender>
<!-- 文件輸出日志 (文件大小策略進(jìn)行文件輸出,超過指定大小對(duì)文件備份)-->
<appender name=
"FILE"
class
=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>xxxx.log</File>
<rollingPolicy
class
=
"ch.qos.logback.core.rolling.FixedWindowRollingPolicy"
>
<FileNamePattern>xxxx.log.%i.bak</FileNamePattern>
<MinIndex>
1
</MinIndex>
<MaxIndex>
12
</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class
=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy>
<layout
class
=
"ch.qos.logback.classic.PatternLayout"
>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{
36
} - %msg%n</Pattern>
</layout>
</appender>
<appender name=
"FILE-ERROR"
class
=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<filter
class
=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>ERROR</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<File>xxxx-err.log</File>
<rollingPolicy
class
=
"ch.qos.logback.core.rolling.FixedWindowRollingPolicy"
>
<FileNamePattern>xxxx-err.log.%i.bak</FileNamePattern>
<MinIndex>
1
</MinIndex>
<MaxIndex>
3
</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class
=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy>
<layout
class
=
"ch.qos.logback.classic.PatternLayout"
>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{
36
} - %msg%n</Pattern>
</layout>
</appender>
<!--這里指定logger name 是為jmx設(shè)置日志級(jí)別做鋪墊 -->
<logger name=
"com.xxx.xxx"
>
<level value=
"INFO"
/>
<appender-ref ref=
"STDOUT"
/>
<appender-ref ref=
"FILE"
/>
<appender-ref ref=
"FILE-ERROR"
/>
</logger>
</configuration>
七. 相關(guān)簡(jiǎn)單說明
? Log4j
Log4j是Apache的一個(gè)開放源代碼項(xiàng)目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件、甚至是套接口服務(wù) 器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等;用戶也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,用戶能夠更加細(xì)致地控制日志的生成過程。這些可以通過一個(gè) 配置文件來靈活地進(jìn)行配置,而不需要修改程序代碼
? Slf4j
簡(jiǎn)單日記門面(Facade)SLF4J是為各種loging APIs提供一個(gè)簡(jiǎn)單統(tǒng)一的接口,從而使得最終用戶能夠在部署的時(shí)候配置自己希望的loging APIs實(shí)現(xiàn)。 Logging API實(shí)現(xiàn)既可以選擇直接實(shí)現(xiàn)SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通過SLF4J提供的API實(shí)現(xiàn)來開發(fā)相應(yīng)的適配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
? Logback
Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日記組件。logback當(dāng)前分成三個(gè)模塊:logback-core,logback- classic和logback-access。logback-core是其它兩個(gè)模塊的基礎(chǔ)模塊。logback-classic是log4j的一個(gè) 改良版本。此外logback-classic完整實(shí)現(xiàn)SLF4J API使你可以很方便地更換成其它日記系統(tǒng)如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日記的功能。
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
對(duì) java.nio.ByteBuffer 的理解
字符編碼詳解及由來(UNICODE,UTF-8,GBK)
SLF4J + logBack
byte[] to int
Java 中 byte與char、String互轉(zhuǎn)原理
Java Stack棧和Heap堆的區(qū)別
Apache James 收發(fā)內(nèi)外網(wǎng)郵件的配置
Web Services Xfire
JDBC ORACLE CLOB (用分頁(yè)思想解決兆級(jí)以上的字符流操作問題)
JavaMail API 簡(jiǎn)介
Powered by:
BlogJava
Copyright © Astro.Qi
日歷
<
2010年11月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
Android(1)
C/C++(2)
Hibernate(3)
Java(14)
JavaFX(2)
Linux(1)
Living(6)
Oracle(9)
Spring(2)
隨筆檔案
2011年5月 (1)
2011年4月 (3)
2010年12月 (1)
2010年11月 (4)
2009年10月 (1)
2009年6月 (1)
2009年4月 (1)
2009年2月 (2)
2009年1月 (9)
2008年8月 (1)
2008年7月 (3)
2008年6月 (11)
2008年1月 (1)
2007年12月 (1)
Java
《深入淺出 Java Concurrency》目錄
Java FX
JavaFX中國(guó)社區(qū)
JavaFX腳本語(yǔ)言
JavaEE博客
JavaEE
深入解析Spring MVC與Web Flow
Odin博客
Linux服務(wù)器技術(shù)
ORACLE和DB2的不同
Open WebMail
Open WebMail 安裝,設(shè)置,問題解決
Open WebMail 完全安裝手冊(cè)
Open WebMail 官方站臺(tái)
Others
JDK5多線程框架java.util.concurrent,android中也是可以用的
Android
Android 02
Fedare安裝ORACLE 9i
Fedora 9完全配置
oracle for linux 安裝
Red Hat Enterprise Linux 5(32Bit/64Bit)安裝Oracle(10g/11g)
redhat安裝oracle
redhat安裝oracle 2
Spring Security
Spring Security提高
鳥哥的 Linux 私房菜
WAP博客
WAP博客--Groovy和Grails簡(jiǎn)介
WAP博客--Oracle備份Clob數(shù)據(jù)
WAP博客--Oracle常用命令
搜索
最新評(píng)論
1.?re: 對(duì) java.nio.ByteBuffer 的理解[未登錄]
12
--1
2.?re: 對(duì) java.nio.ByteBuffer 的理解[未登錄]
1
--1
3.?re: 對(duì) java.nio.ByteBuffer 的理解[未登錄]
11
--1
4.?re: 對(duì) java.nio.ByteBuffer 的理解[未登錄]
1
--1
5.?re: Apache James 收發(fā)內(nèi)外網(wǎng)郵件的配置
不能刪除郵件,樓主有遇到過這個(gè)問題嗎?
--gxy
閱讀排行榜
1.?Apache james mailserver + Claros inTouch webmail(7497)
2.?Apache James 收發(fā)內(nèi)外網(wǎng)郵件的配置(5353)
3.?Oracle熱備份(3023)
4.?SLF4J + logBack(2548)
5.?Eclipse+CDT+MinGW搭建C++環(huán)境(2443)
評(píng)論排行榜
1.?Apache james mailserver + Claros inTouch webmail(33)
2.?FCKeditor2.6 for JSP 配置方法(12)
3.?Apache James 收發(fā)內(nèi)外網(wǎng)郵件的配置(4)
4.?對(duì) java.nio.ByteBuffer 的理解(4)
5.?Hibernate自定義表單完全解決方案(無(wú)需重置SessionFactory)(1)
主站蜘蛛池模板:
免费大黄网站在线看
|
亚洲一区二区三区免费观看
|
色窝窝亚洲AV网在线观看
|
中文字幕乱码系列免费
|
中文字幕无码视频手机免费看
|
免费国产成人高清在线观看麻豆
|
亚洲av乱码一区二区三区
|
精品亚洲国产成人av
|
日本不卡免费新一二三区
|
亚洲av一综合av一区
|
国产精品亚洲专区无码不卡
|
99re在线这里只有精品免费
|
久久久久国产亚洲AV麻豆
|
亚洲人成人无码.www石榴
|
日本亚洲欧洲免费天堂午夜看片女人员
|
亚洲成a人片在线观看天堂无码
|
国产成人亚洲精品青草天美
|
蜜芽亚洲av无码一区二区三区
|
久热免费在线视频
|
亚洲综合激情九月婷婷
|
a毛片在线还看免费网站
|
亚洲成aⅴ人片久青草影院
|
亚洲一本到无码av中文字幕
|
蜜臀AV免费一区二区三区
|
日本亚洲视频在线
|
7m凹凸精品分类大全免费
|
国产亚洲精品一品区99热
|
一级成人a免费视频
|
青青青青青青久久久免费观看
|
亚洲色偷偷av男人的天堂
|
中文在线免费看视频
|
亚洲AV乱码久久精品蜜桃
|
最新亚洲成av人免费看
|
亚洲精品中文字幕无码AV
|
国产精品另类激情久久久免费
|
亚洲av色香蕉一区二区三区
|
国产亚洲精品成人AA片新蒲金
|
国产免费MV大全视频网站
|
国产成人精品久久亚洲
|
精品国产免费人成网站
|
精品国产成人亚洲午夜福利
|