-2

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()などを使用して自分に与えたものだけを書き込みたいと思います。どうすればよいですか?

4

2 に答える 2

3

これは、logLevel を調整することで実行できます。このように値を変更してみてください

log4j.rootLogger=WARN, CUBRID
于 2012-10-04T13:09:16.220 に答える
2

ログレベルを 以外のものに変更する必要がありますDEBUG

log4j.rootLogger=WARN, CUBRID

このチュートリアルは非常に包括的です: log4j の簡単な紹介


自分の情報メッセージのみをログに記録し、その他の警告を許可する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ここでは、それがどのパッケージにも含まれていないと想定しています。パッケージに入れている場合は、2行を変更してパッケージを含めます(ここでは次を使用します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
于 2012-10-04T13:09:11.970 に答える