So it is always recommended to use a logging mechanism for large applications. Logging may be a overhead if we don't use it carefully. We can use logging inside exception handling blocks.
Log4j is a simple and solid logging framework. Lets see how we can use Log4j in our projects. There are 5 main logging levels.
- INFORMATION
- DEBUG
- WARN
- ERROR
- FATAL
- Basic configuration
- Property file configuration
- XML configuration.
Example using Basic configuration.
import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator; public class Log4jSimpleConfigDemo { static final Logger logger = Logger.getLogger(Log4jSimpleConfigDemo.class); public static void main(String args[]) { BasicConfigurator.configure(); logger.info("This is an INFORMATION level message"); logger.debug("This is a DEBUG level message"); logger.warn("This is a WARN level message"); logger.error("This is an ERROR level message"); logger.fatal("This is a fatal level message"); } }
Output
1 [main] INFO Log4jSimpleConfigDemo - This is an INFORMATION level message 2 [main] DEBUG Log4jSimpleConfigDemo - This is a DEBUG level message 3 [main] WARN Log4jSimpleConfigDemo - This is a WARN level message 3 [main] ERROR Log4jSimpleConfigDemo - This is an ERROR level message 3 [main] FATAL Log4jSimpleConfigDemo - This is a fatal level message
Eample using property file.
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jPropertyFileConfigDemo { static final Logger logger = Logger.getLogger(Log4jPropertyFileConfigDemo.class); public static void main(String[] args) { PropertyConfigurator.configure("log4j.properties"); logger.info("This is an INFORMATION level message"); logger.debug("This is a DEBUG level message"); logger.warn("This is a WARN level message"); logger.error("This is an ERROR level message"); logger.fatal("This is a fatal level message"); } }
Property file (log4j.properties)
log4j.rootLogger=DEBUG, CA log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Logging into the console is not always appropriate. Lets see how we can can logging into a file.
This configuration makes no changes to the source code but for the property file.
Property file (log4j.property)
log4j.rootLogger=DEBUG, CA, FA #Console Appender log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #File Appender log4j.appender.FA=org.apache.log4j.FileAppender log4j.appender.FA.File=mylog.log log4j.appender.FA.layout=org.apache.log4j.PatternLayout log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n # Set the logger level of File Appender to WARN log4j.appender.FA.Threshold = WARN
0 comments:
Post a Comment