How to make log4j to write to the console

Is there a way to tell log4j to write its log to a file and to the console? Thanks there are my properties:

log4j.rootLogger=DEBUG,console,R log4j.rootLogger=INFO, FILE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n log4j.appender.FILE=org.apache.log4j.RollingFileAppender log4j.appender.FILE.File=log4j.log log4j.appender.FILE.MaxFileSize=512KB log4j.appender.FILE.MaxBackupIndex=3 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n 
+57
java logging apache log4j
Aug 01 '10 at 17:21
source share
4 answers

The definition of the root registrar is a bit confusing. See the log4j documentation.

This is a standard Java properties file, which means strings are treated as key = value pairs. The second line of log4j.rootLogger overwrites the first, which explains why you don't see anything in the app console .

You need to combine the two rootLogger definitions into one. It looks like you are trying to transfer DEBUG messages to the console and INFO messages to a file. The root logger can have only one level, so you need to change your configuration so that add-ons have the appropriate levels.

Until I confirmed that this is correct, I would suggest that it would look something like this:

 log4j.rootLogger=DEBUG,console,file log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.file=org.apache.log4j.RollingFileAppender 

Note that you also have a bug in the case - you have a lowercase console in one place and in CAPS in another.

+64
Aug 01 '10 at 17:29
source share

Your log4j file should look something like the one below.

 # Define the types of logger and level of logging log4j.rootLogger = DEBUG,console, FILE # Define the File appender log4j.appender.FILE=org.apache.log4j.FileAppender # Define Console Appender log4j.appender.console=org.apache.log4j.ConsoleAppender # Define the layout for console appender. If you do not # define it, you will get an error log4j.appender.console.layout=org.apache.log4j.PatternLayout # Set the name of the file log4j.appender.FILE.File=log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, overwrite log4j.appender.FILE.Append=false # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n 
+33
Jan 31 '13 at 23:03
source share

This works well for the console in debug mode.

 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Threshold=DEBUG log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n 
+6
Aug 18 '15 at 22:29
source share

Write the root logger as shown below to register on both the console and FILE.

log4j.rootLogger = ERROR, console, FILE

And write the appropriate definitions such as Target, Layout and ConversionPattern (MaxFileSize for the file, etc.).

0
May 14 '19 at 6:56
source share



All Articles