Как писать в текстовый файл, используя 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
Спасибо.
Ответы
Ответ 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