我需要将应用程序的错误记录到数据库中。我在log4j.xml中添加了以下内容 数据库日志没有写入表,但我可以在控制台上看到日志消息。
这可能是什么原因。我的数据库连接字符串详细信息是正确的。
的log4j.xml
<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:oracle:thin:@host:1521:test" />
<param name="Driver" value="oracle.jdbc.driver.OracleDriver" />
<param name="User" value="scott" />
<param name="Password" value="tiger" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="INSERT INTO my_table (log_date, log_level, location, message) VALUES ( '%d{ISO8601}','%p',
'%C;%L', '%m' )"
/>
</layout>
</appender>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ISO8601} %p (%C;%L) %m%n"
/>
</layout>
</appender>
<logger name="logging.simple.jdbcLogger" additivity="true">
<level value="info"/>
<appender-ref ref="jdbcAppender"/>
</logger>
<root>
<level value="info"/>
<appender-ref ref="STDOUT"/>
</root>
</log4j:configuration>
答案 0 :(得分:4)
您将在控制台上看到日志消息,因为您已将所有日志消息发送到控制台,但只有logging.simple.jdbcLogger
层次结构下的记录器才会发送到jdbcAppender
}。
您是否在控制台上看到logging.simple.jdbcLogger
条消息?
答案 1 :(得分:1)
将<appender-ref ref="jdbcAppender"/>
添加到<root>...</root>
部分。