Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 配置Log4J以每天写入新文件新日志文件_Java_Logging_Log4j - Fatal编程技术网

Java 配置Log4J以每天写入新文件新日志文件

Java 配置Log4J以每天写入新文件新日志文件,java,logging,log4j,Java,Logging,Log4j,我有Log4J的基本配置: Logger log = Logger.getLogger(LogMessages.class.getName()); BasicConfigurator.configure(); // Basic configuration for Log4J 1.x ConsoleAppender console = new ConsoleAppender(); //create appender //configure the

我有Log4J的基本配置:

Logger log = Logger.getLogger(LogMessages.class.getName());
        BasicConfigurator.configure();  // Basic configuration for Log4J 1.x

        ConsoleAppender console = new ConsoleAppender(); //create appender
        //configure the appender
        String PATTERN = "%d [%p|%c|%C{1}] %m%n";
        console.setLayout(new PatternLayout(PATTERN));
        console.setThreshold(Level.FATAL);
        console.activateOptions();
        //add appender to any Logger (here is root)
        Logger.getRootLogger().addAppender(console);

        FileAppender fa = new FileAppender();
        fa.setName("FileLogger");
        fa.setFile("log" + File.separator + "messages.log");
        fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
        fa.setThreshold(Level.DEBUG);
        fa.setAppend(true);
        fa.activateOptions();

        //add appender to any Logger (here is root)
        Logger.getRootLogger().addAppender(fa); //repeat with all other desired appenders

        // BASIC TEST
        log.info("Some message  1");
        log.info("Some message  2");
        log.info("Some message  3");
        log.info("Some message  4");

如何配置Log4J以每天创建一个新文件并将消息写入该文件?

使用
org.apache.Log4J.DailyRollingFileAppender
而不是
FileAppender

可以找到有关设置的详细信息

编辑
还有一个问题,我如何设置最大日志文件大小?Log4j允许您根据文件大小或日期滚动文件,但不能同时基于文件大小或日期滚动文件。如果您想在DailRollingFileAppender上实现大小功能,就必须实现它。
    PatternLayout layout = new PatternLayout();
    String conversionPattern = "[%p] %d %c %M - %m%n";
    layout.setConversionPattern(conversionPattern);

    // creates daily rolling file appender
    DailyRollingFileAppender rollingAppender = new DailyRollingFileAppender();
    rollingAppender.setFile("app.log");
    rollingAppender.setDatePattern("'.'yyyy-MM-dd");
    rollingAppender.setLayout(layout);
    rollingAppender.activateOptions();

    // configures the root logger
    Logger rootLogger = Logger.getRootLogger();
    rootLogger.setLevel(Level.DEBUG);
    rootLogger.addAppender(rollingAppender);

    // creates a custom logger and log messages
    Logger logger = Logger.getLogger(My.class);

    logger.debug("this is a debug log message");
    logger.info("this is a information log message");
    logger.warn("this is a warning log message");