Table of Contents

Example of configuration of log4j

I've read excelent article of Ceki Gülcü about Log for Java
and I've did my configuration file, just for the sake of keep the basic configuration tips handy:

# # log4j.properties - log for java configuration file ## See complete example at http://www.supermanhamuerto.com/doku.php?id=java:log4j# log levels## if you put here that "any messages above info will # be displayed", what are we talking about???## DEBUG < INFO < WARN < ERROR < FATAL## we are talking that only DEBUG messages will be omitted#### LOGGERS### root logger# # the root logger is the father of all the loggers in log4j# If you create a logger called "com.foo" and don't provide # any configuration, this logger will take the configuration # the root logger # specify that the root logger will be send messages # to the "console" appender and the "A1" appender# Think of appenders as printers where log messages # will be printed## See section "appenders" for the configuration of these # appenders#log4j.rootLogger= INFO, console, A1# let's say we have created a log called "com.supermanhamuerto"# if we do nothing, all the logging messages will be trated # with the "rootLogger" configuration. # BUT we can make a proper configuration for them: # log4j.logger.com.supermanhamuerto= DEBUG, my_own_appender# some common filter for well known# classeslog4j.logger.org.springframework=ERRORlog4j.logger.org.hibernate=ERRORlog4j.logger.aop.framework=ERRORlog4j.logger.loader=ERROR# and configure the appender "my_own_appender" accordingly. # or just leave: ## log4j.com.supermanhamuerto = WARN## to avoid INFO messages from this class### APPENDERS### see at the end the list of available appenders# console appender # # here we will define what will be do the console appender # In our case, it will vomit the messages directly into the # consolelog4j.appender.console= org.apache.log4j.ConsoleAppender# to set specifically to output to the System error consolelog4j.appender.console.target=System.err# set a layout for this appender (see at botton list of available layouts)log4j.appender.console.layout= org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern= %d %-5p %-40c{3} - %m%n# A1 appender## in this case, we will output he content to a file appender log4j.appender.A1= org.apache.log4j.FileAppender# OPTIONAL: a specific log level can be configured for # this appender only# log4j.appender.A1.threshold=ERRORlog4j.appender.A1.file= c\:/temp/filename.loglog4j.appender.A1.layout= org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern= %d %-5p %-40c{3} - %m%n## to output in HTML format:## log4j.appender.A1 = org.apache.HTMLAppender# log4j.appender.A1.file = /home/user/public_html/log.html# log4j.appender.A1.layout = HTMLLayout# log4j.appender.A1.layout.title = Hello, this is the title of the page# ## Available appenders## org.apache.log4j.ConsoleAppender# org.apache.log4j.DailyRollingFileAppender# org.apache.log4j.FileAppender# org.apache.log4j.RollingFileAppender# org.apache.log4j.WriterAppender### Available layouts## org.apache.log4j.PatternLayout# org.apache.log4j.HTMLLayout# org.apache.log4j.TTCCLayout#

Specification of appenders

An example of a rolling file appender

This appender is called “A1” as the previous example. It will roll the log file if it becomes greater than 1Mb in size and every 10 files, it will delete the older, keeping a reasonable size of logging information.

## Rolling Appender: when the log file surpass 1Mb, it will "roll"# and store the content in a file filename.log.1..10. When it # comes to 10 files, it will delete the oldest and create a new # one, saving space on disk#log4j.appender.A1= org.apache.log4j.RollingFileAppenderlog4j.appender.A1.file= PUT-HERE-THE-FILENAMElog4j.appender.A1.maxFileSize= 1MBlog4j.appender.A1.maxBackupIndex= 10log4j.appender.A1.layout= org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern= %d{MM/dd HH:mm:ss} %-40c{3} - %m%n

Working in an SMTP appender

log4j.logger.SOME.CLASS= INFO, smtp## SMTP Appender: in certain ocassions it is good to have this implemented: # it will send an email with the log information. You can use this appender# to alert you if certain errors appear in the log inmediatly.#log4j.appender.smtp= org.apache.log4j.net.SMTPAppender# The BufferSize option takes a positive integer representing the maximum # number of logging events to collect in a cyclic bufferlog4j.appender.smtp.BufferSize= 100# The EvaluatorClass option takes a string value representing the name of # the class implementing the TriggeringEventEvaluator interface.# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/TriggeringEventEvaluator.html#log4j.appender.smtp.EvaluatorClass = PENDINGlog4j.appender.smtp.From= example@example.comlog4j.appender.smtp.To= example@example.comlog4j.appender.smtp.Subject= Error en log de blah, blahlog4j.appender.smtp.LocationInfo= falselog4j.appender.smtp.SmtpUsername=log4j.appender.smtp.SmtpPassword=log4j.appender.smtp.SmtpDebug= falselog4j.appender.smtp.SMTPHost= smtp.example.comlog4j.appender.smtp.layout= org.apache.log4j.PatternLayoutlog4j.appender.smtp.layout.ConversionPattern= %d{MM/dd HH:mm:ss} %-40c{3} - %m%n