java webproject中logback换配置文件的路径

本人小站点:   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/  欢迎大家訪问

posted on 2017-06-20 21:27 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/7056404.html

java webproject中logback换配置文件的路径相关推荐

  1. java 集成logback_java web工程中logback换配置文件的路径

    本人小网站:   http://51kxd.com/  欢迎大家不开心的时候访问访问,调节一下心情 web.xml中配置: logbackConfigLocation file:/datum/Data ...

  2. java获取当前项目相对路径,在JAVA文件中获取该项目的相对路径

    在JAVA文件中获取该项目的相对路径 1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.t ...

  3. java获取当前项目相对路径_怎样在JAVA文件中获取该项目的相对路径

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...

  4. java获取项目的相对路径_在JAVA文件中获取该项目的相对路径

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...

  5. java web 中的转发和重定向路径问题

    为什么80%的码农都做不了架构师?>>>    假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发 ...

  6. Java编程中如何获取项目文件的路径/文件路径

    // 获取类加载器 ClassLoader cl = JDBCUtils.class.getClassLoader(); // 获取文件的统一资源定位器对象 URL url = cl.getResou ...

  7. [Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]

    [问题描述][中等] [解答思路] 1. 记忆化深度优先搜索 复杂度 class Solution {public int[][] dirs = {{-1, 0}, {1, 0}, {0, -1}, ...

  8. LyNews『凌云新闻』 - 在JAVA文件中获取该项目的相对路径

    导读: 本文转自 http://www.lybbs.net/news_read.do?newsPath=2007/10/31/1193808547147.html

  9. Winform中自定义xml配置文件,并配置获取文件路径

    场景 在Winform程序中,需要将一些配置项存到配置文件中,这时就需要自定义xml的配置文件格式.并在一些工具类中去获取配置文件的路径并加载其内容. 关注公众号 霸道的程序猿 获取编程相关电子书.教 ...

最新文章

  1. 语言舒尔特方格程序_注意力训练神器——舒尔特方格(成人、孩子均适用)
  2. case when判断大于某值_Python 代码判断逻辑太复杂?这里有几条最佳实践和技巧...
  3. getdata提取曲线数据_Origin如何从图表中获取数据
  4. 持续更新 | PMCAFF问答专场活动分享笔记大合集
  5. PodPresent-K8s时区配置
  6. AC日记——红色的幻想乡 洛谷 P3801
  7. Mvc Webapi+Fiddler调试 (WebAPI 一)
  8. 控制文件丢失 如何恢复
  9. 图片批量加边框,详细操作步骤
  10. python小白进阶之路三——七段数码管的绘制+做一个酷炫的倒计时(函数的复用)
  11. 迅捷路由器造成计算机无法上网,迅捷路由器不能上网怎么办
  12. JAVA修改运行内存
  13. C++小白入职如何快速上手
  14. 思维导图 基础篇(11)应用-文章分析-框架法
  15. openofficeV2.0由SUN开发的一款免费不亚于微软的office软件
  16. 微信小程序:修复图片音频全新升级带特效喝酒神器源码
  17. MySQL之连接原理
  18. xshell-突出显示集设置
  19. 四级单词pdf_2017年6月大学英语四级真题及答案解析(完整三套可打印)
  20. 零基础自学SQL课程 | 子查询

热门文章

  1. 标注工具_语料标注工具(3)
  2. Android 数据库框架ormlite 使用精要
  3. Android 70道面试题汇总不再愁面试
  4. 搭建Qt 5.3.1 for Windows Phone 8开发环境
  5. openMP 并行编程 基础
  6. 回溯法+奇偶剪枝——Hdu 1010 Tempter of the Bone
  7. mysql带BETTEEN ADN 关键字的查询
  8. DevOps笔记-02:DevOps与微服务之间是什么关系?
  9. 8086汇编基础 push,pop指令执行时,sp怎么变
  10. springboot-web开发(请求参数)