在java中,怎么每次运行Logger日志,就生成新文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中,怎么每次运行Logger日志,就生成新文件相关的知识,希望对你有一定的参考价值。

要的效果是:
每次运行java应用程序,就会自己生成新的日志文件
日志文件按‘年月日时分秒’命名
关于这个功能好像自己覆盖Apperder的一些方法
可是关于原理不是很清楚
希望各位大侠指教下
如果有源代码更好(悬赏)
我知道是log4j来处理
听网上说要重写Appender方法,去去修改文件名,然后文件名以‘年月日时分秒’命名

java 中记录日志一般都用Log4j
下面有详细的配置方法:
http://hi.baidu.com/wonderthing/blog/item/fac6eba4e9421fff9052ee93.html
参考技术A 这是用的 log4j
把log4j.jar包放在你的lab目录下就可以了.

Java日志介绍-java.util.logging.Logger

java.util.logging.Logger是JDK自带的日志工具,其简单实现了日志的功能,不是很完善,所以在实际应用中使用的比较少。本文直接用代码演示其使用方法,文中所使用到的软件版本:Java 1.8.0_191。

package com.inspur.demo.log;

import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

public class JULCase {
    public static void main(String[] args) {
        try {
            Logger logger = Logger.getLogger(JULCase.class.getName());
            
            //日志保存到文件
            FileHandler fileHandler = new FileHandler("d:/temp/a.log", true); 
            fileHandler.setLevel(Level.INFO);
            //设置日志格式
            fileHandler.setFormatter(new Formatter() {
                @Override
                public String format(LogRecord record) {
                    return record.getLevel() + ":" + record.getMessage() + "
";
                }
            });
            logger.addHandler(fileHandler); 
            
            logger.info("aaaa");
            logger.warning("bbbb");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

默认的父Logger设置了ConsoleHandler,所以不需要再添加ConsoleHandler了。

以上是关于在java中,怎么每次运行Logger日志,就生成新文件的主要内容,如果未能解决你的问题,请参考以下文章

java里怎样将junit测试结果输出到日志

Android 开源日志库 Logger 使用教程

flask中logger日志的使用

如何将java日志写到文件

升级你的Logger(注解+动态代理)

logback怎么根据logger输出不同文件