3

我目前已经实现了一个 java swing 应用程序。在该应用程序中,我使用 java.util.logging 将内容登录到文本文件。但是由于文件很大,所以很难通过文本文件。

所以我正在考虑将日志信息存储到一个 oracle 数据库(我用于应用程序)并提供访问该表的 swing 接口。因此,我将能够在该表中搜索某些日志记录级别,例如 INFO 和 SEVERE。有没有办法使用 java util 包或使用 Log4j 来做到这一点。请帮忙

4

3 回答 3

8

看看这些 appenders:org.apache.log4j.jdbc.JDBCAppender或改进的版本org.apache.log4j.jdbcplus.JDBCAppender

于 2010-12-23T09:34:42.560 回答
0

您可以通过扩展org.apache.log4j.AppenderSkeleton. 您可以将他配置为多个数据存储,并定义如何拆分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> 
于 2010-12-23T09:34:30.403 回答
0

您可以使用 JDBC Log4j Appender。

查看TutorialspointApache Wiki

无论您使用 .properties 还是 .xml,您都可能需要相应地更改您的配置。

于 2010-12-23T09:35:43.540 回答