Подтвердить что ты не робот

Как писать в текстовый файл, используя log4j?

Мне интересно, как преобразовать следующий код для вывода этих строк в текстовый файл, а не на стандартный вывод:

import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator;

public class HelloWorld {

    static final Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) {
        PropertyConfigurator.configure("log4j.properties");
        logger.debug("Sample debug message");
        logger.info("Sample info message");
        logger.warn("Sample warn message");
        logger.error("Sample error message");
        logger.fatal("Sample fatal message");
    }
}

Файл свойств:

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n

Спасибо.

4b9b3361

Ответ 1

Измените ConsoleAppender на FileAppender. Один файл appender, который я считаю полезным, org.apache.log4j.RollingFileAppender. Вам нужно будет добавить свойство fileName и, возможно, захотите также установить maxFileSize. Вот пример (поместите их в файл log4j.properties):

log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log
log4j.appender.NotConsole.maxFileSize=20MB

Есть другие приложения. DailyRollingFileAppender выполняет рулетирование по времени. FileAppender не работает. Если вы используете RollingFileAppender, вам нужно будет сделать предположение относительно хорошего значения для maxFileSize, а затем указать размер в будущем, если это вызывает проблемы.

Ответ 2

В скором времени используйте FileAppender вместо ConsoleAppender.

Вот простой пример конфигурации. Он дополнительно настраивает макет. Вы можете опустить его для первого подхода.

log4j.appender.F=org.apache.log4j.FileAppender
log4j.appender.F.File=mylog.log
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=%d{[email protected]:mm:ss} %-5p (%13F:%L) %3x - %m%n

Ответ 3

следующая конфигурация должна также работать

прямые сообщения журнала на stdout ###

log4j.appender.stdout = org.apache.log4j.FileAppender
log4j.appender.stdout.fileName = error.log
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p % c {1}:% L -% m% n

Ответ 4

в log4j.properties

# Define the root logger with file appender
log4j.logger.App = DEBUG ,CA

#set file text
log4j.appender.CA = org.apache.log4j.RollingFileAppender
log4j.appender.CA.File = D:\\database.log
log4j.appender.CA.maxFileSize = 20MB
log4j.appender.CA.MaxBackupIndex=10
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n