【问题标题】:How to get logs from a JAVA file如何从 JAVA 文件中获取日志
【发布时间】:2013-08-08 10:31:12
【问题描述】:

我有一个单独的 jar 文件来做一些事情。这实际上部署在tomcat中。在那个 jar 里面我有一个带有 main 方法的 java 文件。假设类名是 StartPoint。我正在通过“java StartPoint checkStatus”从 shell 脚本调用该主要方法。主要方法验证 checkStatus 参数并相应地完成工作。 jar 中的所有 java 文件都使用 log4j 并使用 log.info/log.debug 进行日志记录。如果 tomcat 启动,这些日志工作正常。由于某些要求,我从 shell 脚本触发了 main 方法,现在我无法获取这些日志信息。请帮助我如何获取使用 logger.info/debug 添加的日志?

【问题讨论】:

    标签: java shell tomcat logging log4j


    【解决方案1】:

    尝试使用 log4j 配置文件路径传递附加参数:

    -Dlog4j.configuration={path to file}
    

    how-do-i-set-log4j-level-on-the-command-line

    log4j-configuration-via-jvm-arguments

    【讨论】:

    • 您好,如果我使用 tomcat 访问我的应用程序,这应该没问题。我正在使用的是一个独立的 java 程序,它位于我项目的 jar 中。我从 shell 脚本中单独调用该特定文件。
    • 那么你是如何调用这个应用程序表单 shell 脚本的呢?像这样:java -jar .jar?
    • export CLASSPATH=...我所有的 jars,包括 project.jar-Dlog4j.configuration={path to file} java -cp ${CLASSPATH} com.pack.StartPoint checkStatus
    • 您在 CLASSPATH 中有环境属性:'-Dlog4j.configuration={path to file}'。我认为它应该像这样 java -Dlog4j.configuration={path to file} -cp ${CLASSPATH} com.pack.StartPoint checkStatus
    【解决方案2】:

    所以我相信当你直接调用 StartPoint main 方法时,你只需要确保 log4j.properties/log4j.xml 在类路径上。

    【讨论】:

    • 我的类路径中有 WEB-INF/lib/log4j-1.2.8.jar 够了吗?
    • 不只是 jar 是不够的,基本上 log4j 从 log4j.properties/log4j.xml 读取配置,例如放置日志的位置(控制台、文件等)、文件滚动、日志日期格式等。您需要确保此配置文件存在于您的类路径中。
    猜你喜欢
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多