Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新

摘自: https://blog.csdn.net/johnson_moon/article/details/78874499

2017年12月22日 16:20:29 阅读数:868 标签: javalogback日志配置文件logback-xm 更多
个人分类: Java日志
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/johnson_moon/article/details/78874499

logback加载非类路径下的logback配置文件并设置定时更新

定时重新加载logback配置文件

logback.xml

<configuration  scan="true" scanPeriod="30 seconds">   ....   </configuration>
  • 1
  • 2
  • 3

配置说明: 
- scan: 设置为true,代表会在指定的时间内重新加载日志配置文件 
- scanPeriod:当scan=true时,日志配置文件会在指定的单位时间内重新加载,默认是每分钟会重载一次。 
- scanPeriod的配置说明: 
时间单位:milliseconds, seconds, minutes , hours

eg:

5分钟: <configuration  scan="true" scanPeriod="5 minutes"> 1小时:  <configuration  scan="true" scanPeriod="1 hours">
  • 1
  • 2

加载非类路径下的logback.xml配置文件

主方法中调用如下代码:

//logback.xml的路径名 File file = new File(System.getProperty("user.dir") + "/conf/logback.xml"); LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); JoranConfigurator joranConfigurator = new JoranConfigurator(); joranConfigurator.setContext(loggerContext); loggerContext.reset(); try {     joranConfigurator.doConfigure(file); } catch (Exception e) {     System.out.println(String.format("Load logback config file error. Message: ", e.getMessage())); } StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

剥离代码为一个类:

 import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.util.StatusPrinter; import org.slf4j.LoggerFactory;  import java.io.File;  /**  * Created by xuyh at 2017/11/20 14:32.  */ public class LogbackInit {     /**      * 设置logback.xml配置文件并加载      *      * @param configFilepathName 配置文件路径名      */     public static void initLogback(String configFilepathName) {         File file = new File(configFilepathName);         LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();         JoranConfigurator joranConfigurator = new JoranConfigurator();         joranConfigurator.setContext(loggerContext);         loggerContext.reset();         try {             joranConfigurator.doConfigure(file);         } catch (Exception e) {             System.out.println(String.format("Load logback config file error. Message: ", e.getMessage()));         }         StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);     } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

调用

//初始化logback日志配置文件 LogbackInit.initLogback(System.getProperty("user.dir") + "/conf/logback.xml");

Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新的更多相关文章

  1. struts2设置加载非默认路径的struts.xml文件解决方案

    方案一:   首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的,如果你想改变strusts2中的文件的默认加载路径,可以在web项目 ...

  2. java 中能否使用 动态加载的类(Class.forName) 来做类型转换?

    今天同事提出了一个问题: 将对象a 转化为类型b,b 的classpath 是在配置文件中配置的,需要在运行中使用Class.forName 动态load进来,因为之前从来没有想过类似的问题,所以懵掉 ...

  3. 对于maven中无法加载类路径下的配置文件

    <build> <resources> <resource> <directory>src/main/java</directory> &l ...

  4. STS启动springboot项目,加载不了resources下的配置文件的问题

    从这篇博客的评论中找到了解决方案 答案: eclipse的设置中,它默认是不包括resources下的文件的,把它改了就行了 原本用idea没这些事的,不过idea旗舰版到期了,社区版的话,对前端又没 ...

  5. JVM如何加载一个类的过程,双亲委派模型中有哪些方法

    1.类加载过程:加载.验证.准备.解析.初始化   加载   在加载阶段,虚拟机主要完成三件事: 1.通过一个类的全限定名来获取定义此类的二进制字节流. 2.将这个字节流所代表的静态存储结构转化为方法 ...

  6. java调用phantomjs采集ajax加载生成的网页

    java调用phantomjs采集ajax加载生成的网页 日前有采集需求,当我把所有的对应页面的链接都拿到手,准备开始根据链接去采集(写爬虫爬取)对应的终端页的时候,发觉用程序获取到的数据根本没有对应 ...

  7. 【原】从一个bug浅谈YUI3组件的资源加载

    篇前声明:为了不涉及业务细节,篇内信息统一以某游戏,某功能代替 前不久,某游戏准备内测客户端,开发人员测试过程中发现某功能突然不灵了,之前的测试一切ok,没有发现任何异常,第一反应是,游戏内浏览器都是 ...

  8. 【java虚拟机系列】java中类与对象的加载顺序

    首先了解一下Java虚拟机初始化的原理. JVM通过加装.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.类型的生命周期如下图所示: 装载和连接必须在初始化之前就要完成. 类 ...

  9. Vue.js 子组件的异步加载及其生命周期控制

    前端开发社区的繁荣,造就了很多优秀的基于 MVVM 设计模式的框架,而组件化开发思想也越来越深入人心.这其中不得不提到 Vue.js 这个专注于 VM 层的框架. 本文主要对 Vue.js 组件化开发 ...

随机推荐

  1. LG2120 [ZJOI2007]仓库建设

    题意 L公司有N个工厂,由高到底分布在一座山上. 工厂1在山顶,工厂N在山脚. 由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用. 突然有一天,L公司的总裁L先生接到 ...

  2. LINUX TCP套接字详细配置

    提高服务器的负载能力,是一个永恒的话题.在一台服务器CPU和内存资源额定有限的情况下,最大的压榨服务器的性能,是最终的目的.要提高 Linux系统下的负载能力,可以先启用Apache的Worker模式 ...

  3. w3cschool在线教程

    做网页开发的,没有不知道w3cschool的,如果你还不知道,那么就应该早点看下面推荐的文章,菜鸟可以帮你提升你的技能,老鸟可以温故而知新. 第一个是:http://www.w3school.com. ...

  4. Markdown编辑器推荐与语法教程--图片版

    请参考Markdown编辑器推荐与语法教程--展示版或者Markdown编辑器推荐与语法教程--展示版看具体效果,当然,大家也可以下载Mou亲自体验一把 End

  5. bzoj 2946 [Poi2000]公共串——后缀自动机

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2946 对每个串都建一个后缀自动机,然后 dfs 其中一个自动机,记录同步的话在别的自动机上走 ...

  6. Nginx安装过程

    1. 首先 ./configure --prefix=/usr/common/nginx --with-http_stub_status_module 报如下错误: 2. 从报的错可以看出缺少pcre ...

  7. AppCan上下拉列表刷新

    function initBounce(funcTop, funcBottom){ uexWindow.setBounce("1"); if (!funcTop && ...

  8. Ubuntu apt-get卸载小记

    过sudo apt-get install xxxx 安装软件后,总是无法卸载干净,这里以Apache 为例,提供方法:首先sudo apt-get remove apache2再sudo apt-g ...

  9. 字符编码py2,py3操作,SecureCRT的会话编码的设置

    对之前的字符串类型和二进制类型(bytes类型),可以这样关联记忆,把字符串类型当作是Unicode,把bytes类型当作是GBK或者UTF-8或者是日文编码.这样字符串要转成二进制,那么就需要编码e ...

  10. tomcat启动时的java_home和jre_home错误

    The JRE_HOME environment variable is not defined correctlyThis environment variable is needed to run ...