记 不重启修改logback日志保存路径

尝试数种方法:

    1. appender

    RollingFileAppender<ILoggingEvent> rolling = ( RollingFileAppender<ILoggingEvent>)context.getlogger("ROOT").getAppender("XXX");

    rolling.stop();

    RollingPolicy rp = rolling.getRollingPolicy();

    TriggeringPolicy<ILoggingEvent> tp = rolling.getTriggeringPolicy();

    //以下三个file必须清空,另外两个至少一个清空,否则重新设置file会报error

    rolling.setRollingPolicy(null);

    rolling.setTriggeringPolicy(null);

    rolling.setFile(null);

 

    rolling.setRollingPolicy(rp);

    rolling.setTriggeringPolicy(tp);

    rolling.setFile("D:\\log.log");

    rolling.start();

该方法重启后由于logback重新加载配置文件会失效需要重新修改。

2.手动加载配置文件

    JoranConfigurator jc = new JoranConfigurator();

    jc.setContext(context);

    context.reset();

    jc.doConfigure(new File("D:\\logback.xml"));

该方法存在与第一种方法一样的问题,并且需要额外的配置文件更麻烦。

3.通过define实现

    在logback.xml用define声明一个变量

    <define name="LOG_HOME" calss="com.java.test.GetLogHome"/>

    该GetLogHome类需要继承PorpertyDefinerBase并重写getPorpertyValue方法(可以从配置文件、数据库或者内存中读).

    每次发生路径的变更,通过调用logback提供的jmx的reloadDefaultConfiguration方法重新加载默认配置即可。

该方法只要对应的配置文件或者数据库修改,每次重启后修改过的配置任然有效不需要手动操作。

转载于:https://my.oschina.net/u/2362608/blog/1503950

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值