XXL-JOB日志目录无法被创建bug;[rCallbackThread] c.x.j.c.l.XxlJobFileAppender: No such file or directory

java.io.IOException: No such file or directory
	at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[?:1.8.0_341]
	at java.io.File.createNewFile(File.java:1023) ~[?:1.8.0_341]
	at com.xxl.job.core.log.XxlJobFileAppender.appendLog(XxlJobFileAppender.java:100) [classes/:?]
	at com.xxl.job.core.context.XxlJobHelper.logDetail(XxlJobHelper.java:164) [classes/:?]
	at com.xxl.job.core.context.XxlJobHelper.log(XxlJobHelper.java:118) [classes/:?]
	at com.xxl.job.core.thread.JobThread.run(JobThread.java:176) [classes/:?]

2022-11-22 22:08:55.510 ERROR 57512 --- [rCallbackThread] c.x.j.c.l.XxlJobFileAppender             : No such file or directory

java.io.IOException: No such file or directory
	at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[?:1.8.0_341]
	at java.io.File.createNewFile(File.java:1023) ~[?:1.8.0_341]
	at com.xxl.job.core.log.XxlJobFileAppender.appendLog(XxlJobFileAppender.java:100) [classes/:?]
	at com.xxl.job.core.context.XxlJobHelper.logDetail(XxlJobHelper.java:164) [classes/:?]
	at com.xxl.job.core.context.XxlJobHelper.log(XxlJobHelper.java:118) [classes/:?]
	at com.xxl.job.core.thread.TriggerCallbackThread.callbackLog(TriggerCallbackThread.java:197) [classes/:?]
	at com.xxl.job.core.thread.TriggerCallbackThread.doCallback(TriggerCallbackThread.java:170) [classes/:?]
	at com.xxl.job.core.thread.TriggerCallbackThread.access$200(TriggerCallbackThread.java:26) [classes/:?]
	at com.xxl.job.core.thread.TriggerCallbackThread$1.run(TriggerCallbackThread.java:76) [classes/:?]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_341]
public static void appendLog(String logFileName, String appendLog) {

		// log file
		if (logFileName==null || logFileName.trim().length()==0) {
			return;
		}
		File logFile = new File(logFileName);

		if (!logFile.exists()) {
			try {
//报错行!!!!!!!!!!!!注意!!!!!!! XxlJobFileAppender.java:100
				logFile.createNewFile();
			} catch (IOException e) {
				logger.error(e.getMessage(), e);
				return;
			}
		}

问题:每次XXL-JOB运行时候报错log日志文件就会报错。原因是文件不存在,直接修改下面类的logBasePath属性就可以,修改成自己的路径,如果是linux直接修改在root目录下

public class XxlJobFileAppender {
	private static Logger logger = LoggerFactory.getLogger(XxlJobFileAppender.class);

	/**
	 * log base path
	 *
	 * strut like:
	 * 	---/
	 * 	---/gluesource/
	 * 	---/gluesource/10_1514171108000.js
	 * 	---/gluesource/10_1514171108000.js
	 * 	---/2017-12-25/
	 * 	---/2017-12-25/639.log
	 * 	---/2017-12-25/821.log
	 *
	 */
	//private static String logBasePath = "/data/applogs/xxl-job/jobhandler";
	private static String logBasePath = "/Users/liuzhenyu/Desktop/log";  //上面是未更改的
	private static String glueSrcPath = logBasePath.concat("/gluesource");
	public static void initLogPath(String logPath){
		// init
		if (logPath!=null && logPath.trim().length()>0) {
			logBasePath = logPath;
		}
		// mk base dir
		File logPathDir = new File(logBasePath);
		if (!logPathDir.exists()) {
			logPathDir.mkdirs();
		}
		logBasePath = logPathDir.getPath();

		// mk glue dir
		File glueBaseDir = new File(logPathDir, "gluesource");
		if (!glueBaseDir.exists()) {
			glueBaseDir.mkdirs();
		}
		glueSrcPath = glueBaseDir.getPath();
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值