怎么让linux服务加载指定位置log4j配置文件

怎么让linux服务加载指定位置log4j配置文件,第1张

输出路径没有完美的解决办法。

log4j.rootLogger=debug,stdout,R1 -->>日志输出debug级别以上的到stdout(控制台) 和R1(自己随便定义的)

1.

log4j.appender.R1.File=/log.log -->>这种输出到 盘的 根目录下 (不,win和linux 不同)

2.

log4j.appender.R1.File=logs/ydcardsys.log -->>项目文件中 (不,容易清理掉)

3.

log4j.appender.R.File=${catalina.home}/logs/ydbudget.log (tomcat系的容器 这种方法不错,切到别的容器就不行了)

4.

web.xml

<context-param> <param-name>webAppRootKey</param-name> <param-value>webApp.root</param-value> </context-param>

log4j.appender.R1.File=${webApp.root}logs/log.log

(这种方法的好处是不区分系统,不区分容器,缺点是会产生垃圾文件,${webApp.root} 在这个被赋值前有段日志不会在你想要的地方,当然妨碍不大,我用的就是这种)

加载log4j.properties配置文件需要在web.xml中配置一些信息,配置如下:

File文件的路径配置方法:

1.使用绝对路径,把日志文件放到一个固定的位置,例如D:/logs/log.log。

2.使用环境变量:

A: {user.home}/logs/log.log是把日志文件放到个人用户目录下,系统不同位置可能会有差异,以我的电脑系统(win10)和个人配置为例,${user.home}/logs/log.log代表C:\Users\kzhzhang\logs\log.log。

B: {catalina.home}/logs/error.log是把日志文件放到tomcat第一层目录下。

C: {webApp.root}/logs/error.log是把日志文件放到发布到tomcat下的项目内部,使用这个变量需要在web.xml中配置一些信息,配置如下,

3.设置一个监听器实现ServletContextListener,在项目启动的时候初始化日志保存目录:

在log4j.properties文件中使用log4jdir(变量名称可以随便命名,注意保持一致)变量配置日志文件位置,例如${log4jdir}/log.log,另外还需要在web.xml中配置监听器,配置如下:

ConversionPattern参数的格式含义


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8956657.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存