java web工程中logback換設定檔的路徑

來源:互聯網
上載者:User

標籤:java

本人小網站:   http://51kxd.com/  歡迎大家不開心的時候訪問訪問,調節一下心情


web.xml中配置:


<!-- windows  logback.xml檔案跟web容器(比如tomcat)在同一個目錄中。linux隨意  -->
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>file:/datum/Data/conf/config/logback.xml</param-value>
</context-param>


<!-- logback.xml隨意放  -->
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>file:E:\\datum\\data\\conf\\logback.xml</param-value>
</context-param>


其中file:一定要有。


<listener>
<listener-class>com.cxfmvcstu.comn.LogbackConfigListener</listener-class>
</listener>

LogbackConfigListener為自己的實作類別

import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.io.UrlResource;import ch.qos.logback.classic.LoggerContext;import ch.qos.logback.classic.joran.JoranConfigurator;import ch.qos.logback.core.joran.spi.JoranException;/** * @description  * @path com.cxfmvcstu.comn.LogbackConfigListener * @author lijun.justin * @time 2015年6月27日 下午8:13:19 */public class LogbackConfigListener implements ServletContextListener {private static final Logger logger = LoggerFactory.getLogger(LogbackConfigListener.class);private static final String CONFIG_LOCATION = "logbackConfigLocation";@Overridepublic void contextInitialized(ServletContextEvent event) {// 從web.xml中載入指定檔案名稱的日誌設定檔String logbackConfigLocation = event.getServletContext().getInitParameter(CONFIG_LOCATION);String fn = event.getServletContext().getRealPath(logbackConfigLocation);try {UrlResource urlResource = new UrlResource(logbackConfigLocation);LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();loggerContext.reset();JoranConfigurator joranConfigurator = new JoranConfigurator();joranConfigurator.setContext(loggerContext);//joranConfigurator.doConfigure(fn);joranConfigurator.doConfigure(urlResource.getFile().getAbsolutePath());logger.debug("loaded slf4j configure file from {}", fn);} catch (JoranException e) {logger.error("can loading slf4j configure file from " + fn, e);}catch (Exception e) {logger.error(e.getMessage(), e);}}@Overridepublic void contextDestroyed(ServletContextEvent event) {}}

要依賴於spring的UrlResource類。裡面無用的代碼,讀者自己精簡一下


logback.xml的配置樣本:


<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">   
<!-- 控制台輸出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>


<!-- 時間滾動輸出 level為 INFO 日誌 -->
<appender name="file—INFO"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>D:/logs/INFO.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>


<!-- 時間滾動輸出 level為 ERROR 日誌 -->
<appender name="file—error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>D:/logs/error.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>


<!-- 特定過濾含有某字串的日誌   需要額外的兩個JAR包,commons-compiler.jar和janino.jar
<appender name="file-str" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<level>ERROR</level>
<evaluator>
<expression>message.contains("str")</expression>
</evaluator>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>D:/logs/contains.%d{yyyy-MM-dd}.log
</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>  -->


<!-- 資料庫輸出 
<appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<level>ERROR</level>
<evaluator>
<expression>message.contains("str")</expression>
</evaluator>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://host_name:3306/datebase_name</url>
<user>username</user>
<password>password</password>
</connectionSource>
</appender> -->


<root level="INFO">
<appender-ref ref="stdout" />
<appender-ref ref="file—INFO" />
<appender-ref ref="file—error" />
<appender-ref ref="file-str" />
<appender-ref ref="db" />
</root>


</configuration> 



本人小網站:   http://51kxd.com/  歡迎大家訪問

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java web工程中logback換設定檔的路徑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.