Log4j是Apache的一个开源项目,通过使用Log4j可以灵活的配置和控制日志功能,将日志信息输出到控制台、文件、GUI组件、套接字服务器指定端口的服务、Windows NT的事件记录器、UNIX Syslog守护进程等,同时也可以控制每一条日志的输出格式以及日志的级别。Log4j通常由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地和日志信息的输出格式。日志信息的优先级从高到低有FATAL、ERROR、WARN、 INFO、DEBUG,分别用来指示日志信息的重要程度。
下面的配置指定将日志输出到控制台、日滚动文件和Oracle数据库中:
log4j.rootLogger=DEBUG, A1, A2, A3
#Console Logger
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Threshold=INFO
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
#File Logger
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.Threshold=WARN
log4j.appender.A2.File=myweb_log.txt
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
#Database Logger
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.Threshold=WARN
log4j.appender.A3.URL=jdbc:oracle:thin:@localhost:1521:orcl
log4j.appender.A3.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.A3.user=scott
log4j.appender.A3.password=tiger
log4j.appender.A3.sql=INSERT INTO tb_log (id, msg) VALUES (seq_tb_log.nextval, '%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n')
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
创建日志器对象并使用日志功能的Java代码如下所示:
import org.apache.log4j.Logger;
public class Test04 {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Test04.class);
logger.debug("This is a test debug message!");
logger.info("This is a test information message!");
logger.warn("This is a test warning message!");
logger.error("This is a test error message!");
logger.fatal("This is a test fatal message!");
}
}