我有这样的场景:这是Java和Log4J
我有一个id列表,通过传递此ID,我将获取id的元数据。获取信息后,我需要将其推送到其他应用程序。
我的要求是这样的:
当无法推送ID时,由于出现任何问题,如网络故障或其他应用程序出现问题,我需要编写所有这些未被推送到日志文件的ID。
从下次运行开始,我必须阅读此日志文件并推送在上一次运行中无法推送的所有ID。如果成功,则需要删除日志,如果没有则保留日志和/或更多id不被推送。
现在,我已经实现了一个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代码实现这一目标。
答案 0 :(得分:0)
你不应该使用Log4J,这不是它的目的。您应该使用不同的存储(单独的文件或数据库)来保存此信息以便重新处理它。 Log4J和登录一般用于跟踪应用程序执行以发现潜在问题等。它有自己的机制或写入,它旋转日志文件,它添加了许多其他信息,适用于完全不同的东西。< / p>