我的应用程序每天构建大量日志。 Java应用程序将这些数据存储到文件中或打开一个新的外部窗口。,我无法进行实时分析。那么可以进行哪些优化以获得实时分析?
答案 0 :(得分:0)
如何记录到文件而不是控制台?如果使用RollingFileAppender,则可以将log4j配置为每小时或每10分钟创建一个新文件。使用RoutingAppender,您应该能够为非常构建创建一个新文件(例如,参见log4j2 FAQ page)。
答案 1 :(得分:0)
你可以使用log4j或log4j2,只为这里提供基于log4j xml的appender结构的xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="NORMAL_LOG_FILE" class="org.apache.log4j.DailyRollingFileAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
<param name="File" value="C://LOGS/app.log" />
<param name="Append" value="true" />
<param name="Threshold" value="INFO" />
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d %-5p %c{3}:%L %m\n" />
</layout>
</appender>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
<param name="Target" value="System.out" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{1}:%L %m\n" />
</layout>
</appender>
<logger name="com.test" additivity="false">
<level value="ALL" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="NORMAL_LOG_FILE" />
<appender-ref ref="ERR_LOG_FILE" />
</logger>
<logger name="com.test" additivity="false">
<level value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="NORMAL_LOG_FILE" />
<appender-ref ref="ERR_LOG_FILE" />
</logger>
<root>
<appender-ref ref="CONSOLE" />
<appender-ref ref="NORMAL_LOG_FILE" />
</root>
</log4j:configuration>