log4j 动态改变日志的输出路径

1、配置log4j的配置文件

    #log4j.properties配置

log4j.rootLogger = debug,FILE,stdout


log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target= System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.ConversionPattern= [%p] %d{yyyy-MM-dd HH:mm:ss} %l %m%n

log4j.appender.FILE = org.apache.log4j.FileAppender
log4j.appender.FILE.File = E:\\log\\test.txt
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.ConversionPattern =  [%p] %d{yyyy-MM-dd HH:mm:ss} %l %m%n

2、加载配置文件

    先引入log4j.properties包

public static void getPropertyConfigurato(){
        //加载配置文件
        PropertyConfigurator.configure("C:NewData\\src\\main\\log4j.properties");
        setLogFileName(NewData.class.getName());
    }
3 、java中重新设置输出文件
public static void setLogFileName(String filename){
        FileAppender appender= (FileAppender) Logger.getRootLogger().getAppender("FILE");//获取FileAppender对象
        appender.setFile("C:NewData\\src\\main\\日志文件\\"+filename+".txt");//重新设置输出的日志的路径和文件名,动态地修改这个文件
    }

4、调用log4j输出文件

public class OutPutLog {
static Logger logger = Logger.getLogger(NewData.class);////NewData.class获取NewData的class对象。Logger.getLogger()是使用log4j的方式记录日志;
/**
* @param args
*/
public static void main(String[] args) {
setLogFileName D = new setLogFileName("FileName文件名");
logger.info("输出你想要的相关信息");
}

猜你喜欢

转载自blog.csdn.net/weixin_37404604/article/details/80077225