本人小站点:   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"; @Override
public 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);
} } @Override
public 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 webproject中logback换配置文件的路径的更多相关文章

  1. 关于Java Webproject中web.xml文件

    提及Java Webproject中web.xml文件无人不知,无人不识,呵呵呵:系统首页.servlet.filter.listener和设置session过期时限.张口就来,但是你见过该文件里的e ...

  2. 转载:java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  3. java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  4. Java工程中如何读取配置文件中参数信息

    Java中读取配置文件中参数: 方法一:通过JDK中Properties来实现对配置文件的读取. Properties主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很 ...

  5. 在java web中获取该项目的根路径

    在jsp页面中: <% String path = application.getRealPath("").replace("\\","\\\\ ...

  6. STS中logback.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...

  7. java(JSP)中几种获取项目路径方式

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...

  8. 如何在java类中读取Properties配置文件

    在com.example包下有一个test.properties文件和测试类PropertyReadTest.java. test.properties 文件内容: author=zeige  tea ...

  9. 在web.xml中配置spring配置文件的路径

    <context-param>     <param-name>contextConfigLocation</param-name>     <param-v ...

随机推荐

  1. Django REST Framework 序列化和校验 知识点

    DRF序列化 Django ORM对象 --> JSON格式的数据 序列化 JSON格式的数据 --> Django ORM数据 反序列化 需要两个工具: from rest_framew ...

  2. 引入拦截器及swagger支持及解决redis无法初始化问题

    Springboot引入拦截器 自定义的拦截器类 Interceptor package cn.zytao.taosir.auth.config; import javax.annotation.Re ...

  3. 2014百度之星资格赛—— Xor Sum(01字典树)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Total ...

  4. Test Precisely and Concretely

    Test Precisely and Concretely Kevlin Henney IT IS IMPORTANT TO TEST for the desired, essential behav ...

  5. jQuery——map()函数以及它的java实现

    map()函数小简单介绍 map()函数一直都是我觉得比較有用的函数之中的一个,为什么这么说呢? 先来考虑一下.你是否碰到过下面场景:须要遍历一组对象取出每一个对象的某个属性(比方id)而且用分隔符隔 ...

  6. 同一个TextView设置不同的颜色和大小

    //strategy1是一个TextView SpannableStringBuilder builder1 = new SpannableStringBuilder(strategy1.getTex ...

  7. 【笨木头Lua专栏】基础补充02:函数的几个特别之处

    没想到距离上一篇基础补充已经过了1年多了,近期准备捡回Lua,把基础都补补,今天来聊聊Lua的函数吧~ 0.环境 我突然对Lua又大感兴趣的最主要原因是,Cocos Code IDE開始浮出水面了,它 ...

  8. oracle实现自增id

    --oracle实现自增id --创建一张T_StudentInfo表 create table T_StudentInfo ( "id" integer not null pri ...

  9. 为什么不能用memcached存储Session?

    Memcached创建者Dormando非常早就写过两篇文章[1][2].告诫开发者不要用memcached存储Session. 他在第一篇文章中给出的理由大致是说,假设用memcached存储Ses ...

  10. 正睿NOIP赠送附加赛1

    T1:math 题目链接: http://zhengruioi.com/contest/156/problem/471 题解: 先讲讲我的乱搞做法.对于前面70%,我跑了背包.因为背包有后效性...我 ...