Log4j动态配置日志路径

动态配置路径

若程序需要的日志路径需要不断的变化,而又不可能每次都去改配置文件,那就要采取两种方法。

一、使用环境变量

log4j的配置文件支持windows/linux的环境变量,那我们就用环境变量表示可能会变化的路径。例如使用“log4j.appender.test1.File=${myweb.root}/WEB-INF/log/test1.log”。

二、代码动态配置

这种方法是不用配置文件,而是在程序里用代码配置,代码是活的,所以路径肯定可以写活。示例如下:

import java.io.IOException;
import org.apache.log4j.Appender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;

public class Test {
    private static Logger logger = Logger.getLogger(Test.class);
    public static void main (String args[]) throws IOException{
        Layout layout = new PatternLayout("%-d{yyyy-MM-dd HH:mm:ss}  [ %l:%r ms ] - [ %p ]  %m%n"); 
        //将路径配置在这里        
        Appender appender = new FileAppender(layout,"E://logs/log/log.log");          
        logger.addAppender(appender); 
        // 记录debug级别的信息  
        logger.debug("This is debug message.");  
        // 记录info级别的信息  
        logger.info("This is info message.");  
        // 记录error级别的信息  
        logger.error("This is error message.");  
    }
}

这样这个类中的日志就不会按照配置文件中配置的来打印,而是根据代码中配置的pattern和路径来打印。
代码内使用路径更加灵活,但是需要考虑维护的复杂性,配置文件可以用来配置绝大部分通用的日志路径,单独个别的可以在代码内使用参数来配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值