【问题标题】:How to fetch real time java execuction logs如何获取实时java执行日志
【发布时间】:2014-03-25 23:15:13
【问题描述】:

我的应用程序每天都会构建大量日志。 Java 应用程序将这些数据存储到文件中或打开一个新的外部窗口。我无法进行实时分析。那么可以做哪些优化来获得实时分析呢?

【问题讨论】:

  • 您的意思是手动分析吗?请详细说明您的问题,以便我们为您提供帮助。
  • 例如:我正在执行 jenkins CI 构建。在每个构建中,我们都可以看到执行日志,这些日志显示的延迟很少。我需要在新窗口中毫无延迟地生成这些日志(实时日志)来自每一行执行的实时和实际日志应该记录在控制台中。每当用户触发构建时,每个操作都应监控并生成日志。

标签: java logging log4j2 java.util.logging jenkins-cli


【解决方案1】:

记录到文件而不是控制台怎么样?如果您使用 RollingFileAppender,您可以将 log4j 配置为每小时或每 10 分钟创建一个新文件。使用 RoutingAppender,您应该能够为非常构建创建一个新文件(参见 log4j2 FAQ page 示例)。

【讨论】:

  • 如何在cmd中打印log4j的日志。完整的执行日志应该在 cmd 控制台中
  • 可以使用tail之类的工具在cmd控制台中实时查看文件。否则,我看不到 Log4j 将如何将其输出定向到多个控制台窗口(每个控制台窗口都是不同的进程)。
【解决方案2】:

你可以使用 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>

【讨论】:

  • 你可以使用 log4j 或 log4j2 我只是在这里为基于 log4j xml 的 appender 结构提供一个 xml
  • 如何在cmd中打印log4j的日志。完整的执行日志应该在 cmd 控制台中
  • 如果你在 tomcat 或任何其他容器中运行你的应用程序,我已经为控制台添加了 appender,你可以直接 tail catalina .out
  • 你能不能给我建议一下。我是 tomcat 的新手。我在 tomcat 中运行我的应用程序,并且能够将日志附加到 abc.out 文件中。您能否进一步帮助我。
  • 在 log4j 中指定基于 linux 的系统中的日志路径转到当前目录 ...日志>>>>>>>>>> >>>>>>>> 然后在 windows 中 tail -f catalina.out基于系统在您的控制台中打开 catalina.out
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多