手机扫一扫访问本页内容

微信扫描点右上角"···"分享到好友或朋友圈

关闭
微信扫一扫可打开小程序

微信长按图片或搜“分享录”可打开小程序

关闭
经验

记一次springboot项目加logback日志管理在Jenkins上gradle构建项目报Logback configuration error detected错误

最近小程序上线后就在做各种优化,由于之前比较赶,像后台的日志管理都没弄,今天准备弄上去,但在测试环境发现Jenkins上构建项目报错了:

查看gradle的构建报告发现报了以下错误:
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLING] – Failed to create parent directories for [/mptest/logs/miniprogram_3ca803ed8134.log]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLING] – openFile(/mptest/logs/miniprogram_3ca803ed8134.log,true) call failed. java.io.FileNotFoundException: /mptest/logs/miniprogram_3ca803ed8134.log (No such file or directory)

我就很纳闷这目录明明有的呀:

度娘发现没找到什么有用的信息,后来静下来思考一下突然想起挂载目录问题,因为我的Jenkins也是跑在docker容器中的,所以跟服务器上的Linux环境是隔开的,在Jenkins容器中自然没有这个目录,由于我服务器上的mptest目录挂载到项目容器中,所以最简单的办法就是把这个目录也挂载到jenkins容器中即可。但重新运行后还是报错:

看到报告的重点提示:
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLING] – openFile(/mptest/logs/miniprogram_b9cc66dde8d8.log,true) call failed. java.io.FileNotFoundException: /mptest/logs/miniprogram_b9cc66dde8d8.log (Permission denied)
这是没权限,sudo chmod -R 777 logs加权限后很快就跑起来了。

这里还有一种情况,像我这里的Jenkins也是部署在docker容器中的,这样尽管上面映射了目录并且给权限了但还是报Failed to create parent directories,这可能是不同容器的运行权限不同造成的,比如Jenkins运行命令加了–privileged=true但java镜像运行命令没加–privileged=true也会出现这种情况,这个时候只需要docker rm jenkins -f删掉容器然后重新运行相同权限的容器即可,建议运行镜像的命令不要随便加–privileged=true。

总结:主要问题还是没找到配置文件中指定的路径或者目录没权限。


展开阅读全文


上一篇:

下一篇:

您还可以访问本站的小程序、公众号等所有端,或者下载APP, 在小程序、APP上可以评论文章以及保存图片还有在线客服哦,如您有任何疑问或建议可向作者提出意见反馈
关注我的公众号每天为您分享各类有用信息
扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,看效果?
分享录多端跨平台系统
分享录交流群