log4j.properties basic examples
log4j.properties
basic
settings
This tutorial will present minimum log4j.properties configuration file to output the log to console or to file. The settings are for log4j version 1.2.x.
To File
There are a few details that are important in the log4j.properties file:
rootLogger: defines the level of logging. For production usually should be used ERROR only. Using a lower level it might affect the performance. For more details on levels check the Log4j Logging Levels tutorial.
appender location: you can setup the file location.
ConversionPattern: defines the layout of the output.
MaxFileSize: defines the max log file size.
MaxBackupIndex: defines the max number of log files to be kept.
# Root logger option - if you need more info go with DEBUG
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log.txt
log4j.appender.file.MaxFileSize=15MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %c{1}:%L - %m%n
To Console
# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %c{1}:%L - %m%n
You can add both file and console output in the same log4j.properties file. The difference will be on the rootLogger
log4j.rootLogger=INFO, file, stdout
ConversionPattern
The following table explains the characters used in the ConversionPattern and all other characters that you can use in your custom pattern:
Conversion Character | Meaning |
---|---|
c | Used to output the category of the logging event. For example, for the category name "a.b.c" the pattern %c{2} will output "b.c". |
C | Used to output the fully qualified class name of the caller issuing the logging request. For example, for the class name "org.apache.xyz.SomeClass", the pattern %C{1} will output "SomeClass". |
d | Used to output the date of the logging event. For example, %d{HH:mm:ss,SSS} or %d{dd MMM yyyy HH:mm:ss,SSS}. |
F | Used to output the file name where the logging request was issued. |
l | Used to output location information of the caller which generated the logging event. |
L | Used to output the line number from where the logging request was issued. |
m | Used to output the application supplied message associated with the logging event. |
M | Used to output the method name where the logging request was issued. |
n | Outputs the platform dependent line separator character or characters. |
p | Used to output the priority of the logging event. |
r | Used to output the number of milliseconds elapsed from the construction of the layout until the creation of the logging event. |
t | Used to output the name of the thread that generated the logging event. |
x | Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event. |
X | The X conversion character is followed by the key for the MDC. For example, X{clientIP} will print the information stored in the MDC against the key clientIP. |
% | The literal percent sign. %% will print a % sign. |