<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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代碼 
    1. String logbackCfg = "/config/logback.xml";  
    2. URL logURL = new ClassPathResource(logbackCfg).getURL();  
    3. ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();  
    4. LoggerContext loggerContext = (LoggerContext) loggerFactory;  
    5. loggerContext.shutdownAndReset();  
    6. JoranConfigurator configurator = new JoranConfigurator();  
    7. configurator.setContext(loggerContext);  
    8. 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代碼 
    1. String logbackCfg = "/config/logback.xml";  
    2. URL logURL = new ClassPathResource(logbackCfg).getURL();  
    3. ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();  
    4. LoggerContext loggerContext = (LoggerContext) loggerFactory;  
    5. loggerContext.shutdownAndReset();  
    6. JoranConfigurator configurator = new JoranConfigurator();  
    7. configurator.setContext(loggerContext);  
    8. configurator.doConfigure(logURL);  

    五. Log4j配置文件示例 
    Java代碼 
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
    3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
    4.   
    5.     <!-- 控制臺(tái)輸出-->  
    6.     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">  
    7.         <param name="Target" value="System.out" />  
    8.         <param name="Threshold" value="INFO" />  
    9.         <layout class="org.apache.log4j.PatternLayout">  
    10.             <param name="ConversionPattern"  
    11.                 value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n  %m%n" />  
    12.         </layout>  
    13.   
    14. <!— 以下是過濾一些不需要輸出的log信息 -->  
    15.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    16.             <param name="StringToMatch" value="new a seq no spend" />  
    17.             <param name="AcceptOnMatch" value="false" />  
    18.         </filter>  
    19.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    20.             <param name="StringToMatch" value="new hi[type=" />  
    21.             <param name="AcceptOnMatch" value="false" />  
    22.         </filter>  
    23.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    24.             <param name="StringToMatch" value="FileTransfer.execCommand()" />  
    25.             <param name="AcceptOnMatch" value="false" />  
    26.         </filter>  
    27.     </appender>  
    28.   
    29.     <!--文件輸出 按照文件大小滾動(dòng)文件-->  
    30.     <appender name="xxxx_file" class="org.apache.log4j.RollingFileAppender">  
    31.         <param name="Append" value="true" />  
    32.         <param name="Threshold" value="INFO" />  
    33.         <param name="File" value="xxxx.log" />  
    34.         <param name="MaxFileSize" value="100MB" />  
    35.         <param name="MaxBackupIndex" value="15" />  
    36.         <layout class="org.apache.log4j.PatternLayout">  
    37.             <param name="ConversionPattern"  
    38.                 value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n  %m%n" />  
    39.         </layout>  
    40.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    41.             <param name="StringToMatch" value="new a seq no spend" />  
    42.             <param name="AcceptOnMatch" value="false" />  
    43.         </filter>  
    44.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    45.             <param name="StringToMatch" value="new hi[type=" />  
    46.             <param name="AcceptOnMatch" value="false" />  
    47.         </filter>  
    48.         <filter class="org.apache.log4j.varia.StringMatchFilter">  
    49.             <param name="StringToMatch" value="FileTransfer.execCommand()" />  
    50.             <param name="AcceptOnMatch" value="false" />  
    51.         </filter>  
    52.     </appender>  
    53.       
    54.     <!-- 錯(cuò)誤輸出 過濾出錯(cuò)誤日志信息-->  
    55.     <appender name="xxxx_error" class="org.apache.log4j.RollingFileAppender">  
    56.         <param name="Append" value="true" />  
    57.         <param name="Threshold" value="ERROR" />  
    58.         <param name="File" value="xxxx-error.log" />  
    59.         <param name="MaxFileSize" value="100MB" />  
    60.         <param name="MaxBackupIndex" value="4" />  
    61.         <layout class="org.apache.log4j.PatternLayout">  
    62.             <param name="ConversionPattern"  
    63.                 value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n  %m%n" />  
    64.         </layout>  
    65.     </appender>  
    66.      
    67.   <!-- 根loggr -->  
    68.     <root>  
    69.         <appender-ref ref="CONSOLE" />  
    70.         <appender-ref ref="xxxx_file" />  
    71.         <appender-ref ref="xxxx_file_error" />  
    72.     </root>  
    73. </log4j:configuration>  

    六. Logback配置文件示例 
    Java代碼 
    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE configuration>  
    3.   
    4. <configuration>  
    5.     <jmxConfigurator />  
    6.       
    7.     <!-- 控制臺(tái)輸出日志 -->  
    8.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
    9.         <layout class="ch.qos.logback.classic.PatternLayout">  
    10.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>  
    11.         </layout>  
    12.     </appender>  
    13.       
    14.     <!-- 文件輸出日志 (文件大小策略進(jìn)行文件輸出,超過指定大小對(duì)文件備份)-->  
    15.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">  
    16.         <File>xxxx.log</File>  
    17.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
    18.             <FileNamePattern>xxxx.log.%i.bak</FileNamePattern>  
    19.             <MinIndex>1</MinIndex>  
    20.             <MaxIndex>12</MaxIndex>  
    21.         </rollingPolicy>  
    22.   
    23.         <triggeringPolicy  
    24.             class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
    25.             <MaxFileSize>100MB</MaxFileSize>  
    26.         </triggeringPolicy>  
    27.         <layout class="ch.qos.logback.classic.PatternLayout">  
    28.             <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>  
    29.         </layout>  
    30.     </appender>  
    31.     
    32.     <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">  
    33.          <filter class="ch.qos.logback.classic.filter.LevelFilter">  
    34.             <level>ERROR</level>  
    35.             <OnMismatch>DENY</OnMismatch>  
    36.             <OnMatch>ACCEPT</OnMatch>  
    37.         </filter>  
    38.           
    39.         <File>xxxx-err.log</File>  
    40.         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
    41.             <FileNamePattern>xxxx-err.log.%i.bak</FileNamePattern>  
    42.             <MinIndex>1</MinIndex>  
    43.             <MaxIndex>3</MaxIndex>  
    44.         </rollingPolicy>  
    45.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
    46.             <MaxFileSize>100MB</MaxFileSize>  
    47.         </triggeringPolicy>  
    48.         <layout class="ch.qos.logback.classic.PatternLayout">  
    49.             <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>  
    50.         </layout>  
    51.     </appender>  
    52.   
    53.   <!--這里指定logger name 是為jmx設(shè)置日志級(jí)別做鋪墊 -->         
    54.     <logger name="com.xxx.xxx">  
    55.         <level value="INFO" />  
    56.         <appender-ref ref="STDOUT" />  
    57.         <appender-ref ref="FILE" />  
    58.         <appender-ref ref="FILE-ERROR" />  
    59.     </logger>  
    60.   
    61.   
    62.   
    63. </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來訪問日記的功能。
    主站蜘蛛池模板: 免费大黄网站在线看| 亚洲一区二区三区免费观看| 色窝窝亚洲AV网在线观看| 中文字幕乱码系列免费| 中文字幕无码视频手机免费看| 免费国产成人高清在线观看麻豆 | 亚洲av乱码一区二区三区| 精品亚洲国产成人av| 日本不卡免费新一二三区| 亚洲av一综合av一区| 国产精品亚洲专区无码不卡| 99re在线这里只有精品免费| 久久久久国产亚洲AV麻豆| 亚洲人成人无码.www石榴| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲成a人片在线观看天堂无码 | 国产成人亚洲精品青草天美| 蜜芽亚洲av无码一区二区三区| 久热免费在线视频| 亚洲综合激情九月婷婷| a毛片在线还看免费网站| 亚洲成aⅴ人片久青草影院| 亚洲一本到无码av中文字幕| 蜜臀AV免费一区二区三区| 日本亚洲视频在线| 7m凹凸精品分类大全免费| 国产亚洲精品一品区99热| 一级成人a免费视频| 青青青青青青久久久免费观看| 亚洲色偷偷av男人的天堂| 中文在线免费看视频| 亚洲AV乱码久久精品蜜桃| 最新亚洲成av人免费看| 亚洲精品中文字幕无码AV| 国产精品另类激情久久久免费| 亚洲av色香蕉一区二区三区| 国产亚洲精品成人AA片新蒲金| 国产免费MV大全视频网站| 国产成人精品久久亚洲| 精品国产免费人成网站| 精品国产成人亚洲午夜福利|