我目前已经实现了一个java swing应用程序。在该应用程序中,我使用java.util.logging将事物记录到文本文件中。但由于文件非常大,因此很难通过文本文件。
所以我想将日志信息存储到oracle数据库(我用于应用程序)并提供swing接口来访问该表。因此,我将能够在该表中搜索某些日志记录级别,如INFO和SEVERE。有没有办法使用java util包或使用Log4j。请帮忙
答案 0 :(得分:8)
请看一下这些appender:org.apache.log4j.jdbc.JDBCAppender
或改进版org.apache.log4j.jdbcplus.JDBCAppender
。
答案 1 :(得分:0)
您可以通过扩展org.apache.log4j.AppenderSkeleton
来编写自己的Appender。您可以让他为多个数据存储配置,并定义如何拆分LoggingEvent,您可以在其中获取分隔信息,如行号,类名,消息,记录器严重性等。
public class StorageBasedAppender
extends AppenderSkeleton
{
[...]
@Override
protected void append(LoggingEvent event)
{
// Write to your database or other storages
}
}
您可以通过使其可配置等来增强此类。如果您不需要某些具体内容,则可以使用JDBCAppenderConfiguration来解决其他问题。哪个可以轻松配置
<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:oracle:thin:@sd1.hbs.edu:1521:sc1" />
<param name="Driver" value="oracle.jdbc.driver.OracleDriver" />
<param name="User" value="user" />
<param name="Password" value="password" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="INSERT INTO LOGGING_SAMPLES_TEST
(log_date, log_level, location, message)
VALUES ( '%d{ISO8601}','%p', '%C;%L', '%m' )"
/>
</layout>
</appender>
答案 2 :(得分:0)