How to write to a text file using log4j?

I am wondering how to convert the following code to output these lines to a text file, and not to standard output:

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"); } } 

Property File:

 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 

Thank.

+20
java file logging log4j
Dec 17 '10 at 20:49
source share
4 answers

Change ConsoleAppender to FileAppender. One appender file that I find useful is org.apache.log4j.RollingFileAppender . You will need to add the fileName property and you might also want to set maxFileSize as well. Here is an example (put them in the log4j.properties file):

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

There are other applications. DailyRollingFileAppender performs time-based taxiing. FileAppender does not work. If you are using RollingFileAppender, you will need to make an assumption about a good value for maxFileSize, and then specify the size in the future if this causes problems.

+27
Dec 17 '10 at 21:12
source share

Soon, use FileAppender instead of ConsoleAppender.

Here is a simple configuration example. It further customizes the layout. You can omit it for the first approach.

 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{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n 
+6
Dec 17 '10 at 21:12
source share

the following configuration should also work

direct journal messages on 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

+1
Dec 07
source share

in 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 
0
Nov 18 '16 at 11:05
source share



All Articles