Log4j用Java应用程序读写

时间:2015-06-30 11:41:56

标签: java logging log4j writing

我有这样的场景:这是Java和Log4J

我有一个id列表,通过传递此ID,我将获取id的元数据。获取信息后,我需要将其推送到其他应用程序。

我的要求是这样的:

  1. 当无法推送ID时,由于出现任何问题,如网络故障或其他应用程序出现问题,我需要编写所有这些未被推送到日志文件的ID。

  2. 从下次运行开始,我必须阅读此日志文件并推送在上一次运行中无法推送的所有ID。如果成功,则需要删除日志,如果没有则保留日志和/或更多id不被推送。

  3. 现在,我已经实现了一个Log4j系统,它只是将我们的应用程序消息记录到日志文件中:

    代码如下:

    log4j.rootLogger=DEBUG, stdout, file
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C:\\logs\\logging.log
    log4j.appender.file.MaxFileSize=10MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    请给我一个建议如何使用Java代码实现这一目标。

1 个答案:

答案 0 :(得分:0)

你不应该使用Log4J,这不是它的目的。您应该使用不同的存储(单独的文件或数据库)来保存此信息以便重新处理它。 Log4J和登录一般用于跟踪应用程序执行以发现潜在问题等。它有自己的机制或写入,它旋转日志文件,它添加了许多其他信息,适用于完全不同的东西。< / p>