java - 如何从 jar 文件中获取 log4j 输出

标签 java logging log4j

当我在程序中运行时,我可以将日志写入文件。但是在创建程序的 jar 文件并使用 ProcessBuilder 运行该 jar 后,它确实生成了该文件,但没有写入任何内容。如有任何帮助,我们将不胜感激。

这是属性文件

log4j.rootLogger=fatal,CONSOLE,R

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=H://decompilerDirectory//logs/testlog.log
log4j.appender.R.MaxFileSize=60000KB
log4j.appender.R.MaxBackupIndex=15
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n

这就是我运行程序的方式

ProcessBuilder pb = new ProcessBuilder("C:\\Program Files\\Java\\jdk1.7.0_13\\bin\\javaw.exe", "-jar", "ta.jar", filePath);

Process p = pb.start();
p.waitFor();

最佳答案

您设置了main-class吗?在 jar 的 list 文件中?

这不是关于 main 方法,而是关于主类。检查我给你的链接。如果你想从命令行运行一个 jar 文件,你需要在它的 list 文件中设置它的主类,否则,指定你想要执行它的主函数的类。

java -jar jar-file-name.jar com.yourcompany.yourclass main-method-arguments-spearated-with-spaces

关于java - 如何从 jar 文件中获取 log4j 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23034315/

相关文章:

java - 如何在java中不向server.log抛出异常

java - 从一个对象内部的另一个对象调用该对象的方法

java - Vaadin 7.1.0 推送

javascript - 我应该如何记录对 Redux 存储的每个调度调用?

java - 推断我的垃圾收集日志

java - 如何使用 PowerMockito 模拟 PropertyConfigurator.configure()?

java - 好还是坏——使用构造函数从远程 web 服务初始化模型

java - 结果集开始之前

Java 包 Log4J2 : MapFilters

java - 找不到记录器的附加程序 (org.apache.http.client.protocol.RequestAddCookies)