Shell-Linux CRON调用JAR log4j无法输出日志

Linux CRONTAB Shell调用JAR包时,log4j日志无法输出,由于log4j没有指定路径,默认为当前路径,有可能日志已输出到/root目录下,在shell中,跳转到指定目录,执行,日志输出正常。


ex:

#!/bin/bash

PATH=$PATH:$HOME/bin

export PATH
export JAVA_HOME=/usr/local/jdk1.7.0_55
export CATALINA_HOME=/usr/local/apache-tomcat-7042
export JRE_HOME=$JAVA_HOME/jre
export PATH=.:$PATH:$JAVA_HOME/bin

cd /usr/local/src
/usr/bin/java -jar name.jar
#java -jar -Dlog4j.configuration=file:/usr/local/src/log4j.properties /usr/local/src/name.jar

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用logrotate工具来限制Java应用程序生成的日志文件的大小。logrotate是一个用于管理日志文件的工具,它可以根据预定义的规则对日志文件进行轮转、压缩和删除操作。 以下是一个示例配置文件,用于限制Java应用程序生成的日志文件的大小: ```shell /path/to/log/file.log { size 10M rotate 5 compress missingok notifempty copytruncate } ``` 在上述配置文件中,`/path/to/log/file.log`是要进行日志轮转的文件路径。`size 10M`表示当日志文件大小达到10兆时,将进行轮转。`rotate 5`表示保留5个轮转后的日志文件。`compress`表示压缩轮转后的日志文件。`missingok`表示如果日志文件不存在,则忽略该文件。`notifempty`表示如果日志文件为空,则不进行轮转。`copytruncate`表示在轮转时,先复制日志文件,然后截断原始日志文件,以避免正在写入的日志丢失。 你可以将上述配置文件保存为`/etc/logrotate.d/java-app`,然后使用以下命令手动运行logrotate进行日志轮转: ```shell logrotate /etc/logrotate.d/java-app ``` 你还可以将logrotate配置文件添加到cron作业中,以定期自动运行logrotate进行日志轮转。例如,将以下行添加到`/etc/crontab`文件中,表示每天凌晨3点运行logrotate: ```shell 0 3 * * * root logrotate /etc/logrotate.d/java-app ``` 这样,Java应用程序生成的日志文件将会被限制在指定的大小,并且会自动进行轮转和压缩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值