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

时间:2014-05-10 16:19:44

标签: java windows batch-file scheduler

我已经使用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中提供文件夹的物理路径?

2 个答案:

答案 0 :(得分:1)

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

希望这可以提供帮助。

的问候, 晏

答案 1 :(得分:0)

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

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

enter image description here

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