gpt4 book ai didi

java - 将 Log4J INFO 发送到数据库并将 DEBUG 发送到控制台?

转载 作者:行者123 更新时间:2023-12-01 15:00:30 25 4
gpt4 key购买 nike

我有com.mycompany.library。*

我希望 DEBUG 转到控制台,INFO 转到数据库。我怎样才能实现它?这是我的 log4j.xml 的一部分

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration debug="false"
xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- APPENDERS LIST -->
<!-- show log entries on console -->

<appender name="ConsoleApp" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} [%-5p][%-16.16t][%32.32c] - %m%n" />
</layout>
</appender>

<appender name="DBAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:postgresql://localhost:5432/myDB" />
<param name="driver" value="org.postgresql.Driver" />
<param name="user" value="postgres" />
<param name="password" value="password" />
<param name="sql"
value="INSERT INTO logs(user_id, dated,logger,lev,message) VALUES('%t', '%d{yyyy-MM-dd HH:mm:ss}','%-50c{3}','%p','%m')" />
</appender>

<logger name="com.mycompany">
<level value="INFO" />
<appender-ref ref="DBAppender" />
</logger>

<logger name="com.mycompany.library">
<level value="DEBUG" />
<appender-ref ref="ConsoleApp" />
</logger>

<root>
<priority value="ERROR" />
<appender-ref ref="DBAppender" />
</root>

</log4j:configuration>

使用此配置:INFO 和 DEBUG 转到控制台。但具有双重条目的 INFO 和 DUBUG 也会转到 DB。

我希望数据库发生 INFO 级别(及更高级别)的事件,而不是 DEBUG。如何做到这一点?

最佳答案

您可以在附加程序上设置阈值(而不是在记录器上)。例如:

<appender name="std-out" class="org.apache.log4j.ConsoleAppender"> 
<layout class="org.apache.log4j.PatternLayout">...</layout>
<param name="Threshold" value="info"/>
</appender>

参见http://wiki.apache.org/logging-log4j/LogByLevel

编辑:您也不必在 com.mycompany 记录器和根记录器上设置附加程序。这就是为什么您有重复的条目,因为它们被视为附加项(因此在 com.mycompany 级别,您基本上有 2 个数据库附加程序)。

只需在 root 上设置 DBAppender 并将其从 com.mycompany 记录器中删除即可。

关于java - 将 Log4J INFO 发送到数据库并将 DEBUG 发送到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13719787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com