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!");
- }
- }