我已经使用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 中提供文件夹的物理路径?
您将遇到任务计划程序的路径和类路径问题。 设置为执行计划任务的用户可能具有不同的 PATH 和类路径定义。 设置为执行计划任务的用户具有可能影响批处理执行的用户权限。 您的批处理文件必须设置所有内容才能按您的预期运行。
希望这能有所帮助。
问候, 扬
对我有用的是将当前目录设置为我的 java (.jar) 程序的位置,然后我看到日志文件,就像从命令行手动运行一样。
我使用 Powershell 脚本从任务计划程序启动 .jar 文件,因此我使用之前行中的 Set-Location 命令在脚本中设置当前目录。