Java 将日志信息存储到oracle数据库

Java 将日志信息存储到oracle数据库,java,log4j,logging,java.util.logging,Java,Log4j,Logging,Java.util.logging,我目前已经实现了一个JavaSwing应用程序。在该应用程序中,我使用java.util.logging将内容登录到文本文件。但由于文本文件非常大,因此很难浏览该文件 因此,我考虑将日志信息存储到oracle数据库(我用于应用程序)中,并提供swing接口来访问该表。因此,我将能够在该表中搜索特定的日志记录级别,如INFO和SEVER。有没有办法使用Javautil包或使用Log4j来实现这一点。请帮助您可以通过扩展org.apache.log4j.AppenderSkeleton来编写自己的A

我目前已经实现了一个JavaSwing应用程序。在该应用程序中,我使用java.util.logging将内容登录到文本文件。但由于文本文件非常大,因此很难浏览该文件


因此,我考虑将日志信息存储到oracle数据库(我用于应用程序)中,并提供swing接口来访问该表。因此,我将能够在该表中搜索特定的日志记录级别,如INFO和SEVER。有没有办法使用Javautil包或使用Log4j来实现这一点。请帮助

您可以通过扩展org.apache.log4j.AppenderSkeleton来编写自己的Appender。您可以为他配置多个数据存储,并定义如何分割数据,从中可以获得行号、类名、消息、记录器严重性等单独的信息

public class StorageBasedAppender
    extends AppenderSkeleton
{
    [...]

    @Override
    protected void append(LoggingEvent event)
    {
        // Write to your database or other storages
    }
}
您可以通过使其可配置和更多功能来增强该类。如果您不需要一些具体的问题,那么针对其他问题,请使用。可以很容易地进行配置

<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> 


看看这些Appender:
org.apache.log4j.jdbc.jdbcapender
或改进版本。

您可以使用jdbc log4j Appender

退房或

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