Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java cron运行的Jar文件不';他不能自己写日志_Java_Cron_Log4j - Fatal编程技术网

Java cron运行的Jar文件不';他不能自己写日志

Java cron运行的Jar文件不';他不能自己写日志,java,cron,log4j,Java,Cron,Log4j,我有一个简单的java程序(java版本1.7),它是一个电子邮件发送者,我想在它运行期间记录一些事件。所以我决定使用org.apache.log4j.Logger来实现这一点。我创建了log4j.properties文件,其中包含以下内容: log4j.rootLogger=INFO, file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=Autoemail.log log4

我有一个简单的java程序(java版本1.7),它是一个电子邮件发送者,我想在它运行期间记录一些事件。所以我决定使用
org.apache.log4j.Logger
来实现这一点。我创建了log4j.properties文件,其中包含以下内容:

log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=Autoemail.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
log4j.appender.file.encoding=UTF-8
java -jar /var/projects/Autoemail/Autoemail.jar  2>> /var/projects/Autoemail/Autoemail.err
这是我加载配置的方式:

PropertyConfigurator.configure(cl.getResource("resources/log4j.properties"));
logger = Logger.getLogger("");
logger.info("Auto email sending started...");
其中cl是类加载器。当我在本地主机上从Eclipse运行此程序时,一切都按预期工作,如果日志文件不存在,则已创建日志文件,在下一次运行时会追加日志文件

然后我想每天早上7点自动运行这个电子邮件发送程序。我创建了定时cron作业,它执行以下操作:

log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=Autoemail.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
log4j.appender.file.encoding=UTF-8
java -jar /var/projects/Autoemail/Autoemail.jar  2>> /var/projects/Autoemail/Autoemail.err
在第一次运行时,它工作正常,日志文件已经创建,信息或错误已经插入,但从那时起,程序就不会向其中写入任何事件。jar文件运行,因为我可以看到发送的电子邮件。当我开始搜索原因并运行命令时,它显示了一个
权限被拒绝
错误。我检查了日志文件的权限,它是:
rw-rw-r--
。因此,我最终修改为
rwxrwx
,但仍然没有写入日志,并且在syslog文件中也看不到任何错误消息。我想,店主不需要sudo。顺便说一句,服务器是Ubuntu 13/04

是否有人知道哪些地方可能出错,哪些地方仍然需要,或者我必须做什么?

这是否有帮助: