Java 程序使用 Windows 任务计划程序启动,但未在批处理文件夹中创建日志文件

问题描述 投票:0回答:3

我已经使用Windows任务计划程序启动了java程序(带有批处理文件脚本)。在我的 log4.properties 中

log4j.rootLogger=ALL, file1
log4j.appender.file1=org.apache.log4j.RollingFileAppender
log4j.appender.file1.Threshold=INFO
log4j.appender.file1.File=personal-info.log 
log4j.appender.file1.MaxFileSize=10240KB
log4j.appender.file1.MaxBackupIndex=10
log4j.appender.file1.layout=org.apache.log4j.PatternLayout
log4j.appender.file1.layout.ConversionPattern = %d{ISO8601} %-5p [%t] [%F:%L] : %m%n
log4j.logger.com.personal=INFO,  file1
log4j.additivity.com.personal=false
log4j.additivity.org.springframework=false
log4j.additivity.org.jboss=false
log4j.additivity.org.hibernate=false
log4j.additivity.org.dozer=false

当我从命令行启动批处理文件时,该文件会在批处理文件的同一文件夹中创建,但是当我从 Windows 任务计划程序启动它时,它不会在批处理文件文件夹或计算机中的其他任何位置创建日志文件。

还有一件事,这个任务是由其他用户启动的,之前有其他人遇到过这个问题吗?解决方案是在 log4.properties 中提供文件夹的物理路径?

java windows batch-file scheduler
3个回答
2
投票

您将遇到任务计划程序的路径和类路径问题。 设置为执行计划任务的用户可能具有不同的 PATH 和类路径定义。 设置为执行计划任务的用户具有可能影响批处理执行的用户权限。 您的批处理文件必须设置所有内容才能按您的预期运行。

希望这能有所帮助。

问候, 扬


0
投票

当任务计划程序执行 .bat 文件来启动我的小型 Java 应用程序时,我遇到了同样的问题。 log4j 日志文件根本没有被创建。但是当我从命令行运行批处理文件时,一切正常。正如 rishman 所建议的,必须有 PATH/classpath 的东西。

但是,您可以将批处理文件生成的日志保存到文件中:

enter image description here

这将在批处理文件所在的位置创建一个 .log 文件。


0
投票

对我有用的是将当前目录设置为我的 java (.jar) 程序的位置,然后我看到日志文件,就像从命令行手动运行一样。

我使用 Powershell 脚本从任务计划程序启动 .jar 文件,因此我使用之前行中的 Set-Location 命令在脚本中设置当前目录。

© www.soinside.com 2019 - 2024. All rights reserved.