log4j到数据库

时间:2012-10-04 13:06:52

标签: java log4j

我使用log4j向数据库报告错误:

log4j.rootLogger=DEBUG, CUBRID

# CUBRID Database
log4j.appender.CUBRID = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.CUBRID.driver = org.postgresql.Driver
log4j.appender.CUBRID.user = postgres
log4j.appender.CUBRID.password = postgres
log4j.appender.CUBRID.URL = jdbc:postgresql://localhost:5432/logs
log4j.appender.CUBRID.sql = INSERT INTO LOGS VALUES('%x','%d{yyyy-MM-dd  HH:mm:ss.SSS}','%C','%p','%m')
log4j.appender.CUBRID.layout=org.apache.log4j.PatternLayout

我有一个代码:

public class LogTest extends BaseDAO<Object> {

    public void show()
    {
        Logger log = Logger.getLogger(LogTest.class.getName());
        log.info("Wystartowal");
        log.warn("Trwanie aplikacji");
        try {
            if ( 1 / 0 == 0 ) {
                System.out.println("Czekaj...");
            }
        } catch( Exception ex) {
            log.error("Komunikat bledu", ex);
        }
        log.fatal("Koniec aplikacji");
    }
}

所有写入数据库但它保存了我所有的日志,我想我只会使用命令log.warn(),log.fatal()等编写我自己写的东西。 怎么做?

2 个答案:

答案 0 :(得分:3)

这可以通过调整logLevel来完成。尝试更改像这样的值

log4j.rootLogger=WARN, CUBRID

答案 1 :(得分:2)

您必须将日志级别更改为DEBUG以外的其他级别。

log4j.rootLogger=WARN, CUBRID

本教程非常全面:Short introduction to log4j


要仅记录您自己的信息消息,但允许&gt; = WARN的其他警告更改为以下内容:

log4j.rootLogger=WARN, CUBRID

log4j.logger.LogTest = INFO, CUBRID
log4j.additivity.LogTest = false

# CUBRID Database
log4j.appender.CUBRID = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.CUBRID.driver = org.postgresql.Driver
log4j.appender.CUBRID.user = postgres
log4j.appender.CUBRID.password = postgres
log4j.appender.CUBRID.URL = jdbc:postgresql://localhost:5432/logs
log4j.appender.CUBRID.sql = INSERT INTO LOGS VALUES('%x','%d{yyyy-MM-dd  HH:mm:ss.SSS}','%C','%p','%m')
log4j.appender.CUBRID.layout=org.apache.log4j.PatternLayout

这里我假设LogTest不是任何包的一部分。如果您已将其放入包中,请更改两行以包含包(此处我使用my.package

log4j.logger.my.package.LogTest = INFO, CUBRID
log4j.additivity.my.package.LogTest = false

现在,如果您想在包中的所有记录器上应用INFO级别,请执行以下操作:

log4j.logger.my.package = INFO, CUBRID
log4j.additivity.my.package = false

甚至是顶级套餐:

log4j.logger.my = INFO, CUBRID
log4j.additivity.my = false