本人小站点:   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. pytorch 1 torch_numpy, 对比

    import torch import numpy as np details about math operation in torch can be found in: http://pytorc ...

  2. 原生javaScript完成Ajax请求

    使用原生javaScript完成Ajax请求,首先应该创建一个对象XMLHttprequest,考虑到兼容低版本IE浏览器,使用ActiveXObject对象,代码入下: var request; i ...

  3. Java程序命令行打包Jar

    最近要跑爬虫程序,需要打包成jar发在linux服务器中运行.主要是第三方的lib包与配置文件,不进行打包,方便修改. 1.eclipse中src中源码编译后生成的源码在bin文件中,把里面源码单独拿 ...

  4. HDOJ 2189 悼念512汶川大地震遇难同胞——来生一起走 【母函数】

    题意:非常清楚不解释. 策略:如题. 就是个简单的母函数的改变. 这道题做了好久,才明确是那有毛病,还是理解的不够深刻. AC代码: #include<stdio.h> #include& ...

  5. Maximum Bipartite Matching

    算法旨在用尽可能简单的思路解决这个问题.理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时最好还是从样例入手.通过一个简单的样例,并编程实现,这个过程 ...

  6. windowsclient崩溃分析和调试

    本文介绍windows上崩溃分析的一些手段,顺便提多进程调试.死锁等. 1.崩溃分析过程 1.1 确认错误码 不管是用windbg还是用vs.首先应该注意的是错误码,而90%以上的崩溃都是非法訪问. ...

  7. VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法

    VC MFC 提供的 API LoadBitmap / LoadImage 类 CBitmap 等都只能操作 BMP 位图,图标.对于其他常用的 JPG / JPEG / GIF / PNG 格式,它 ...

  8. DB-MySQL:目录

    ylbtech-DB-MySQL:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbt ...

  9. Java 7之传统I/O - 字符类 StringReader和StringWriter

    转自:https://www.xuebuyuan.com/2015312.html 这两个类将String类适配到了Reader和Writer接口,在StringWriter类实现的过程中,真正使用的 ...

  10. SSRS参数不能默认全选的解决方法

    解决方法选自<SQL Server 2008 R2 Reporting Services 报表服务>一书,亲测有效. 注意:参数默认值如果是字符串需要类型转换 =CStr("AL ...