大家一般都在Windows上开发,部署到linux服务器上通常会出现一些路径报错,因为两个操作系统的文件系统不同,不能用绝对路径来定义log4j的输出日志路径.对于相对路径来说,有以下解决方法.
1.日志输出debug级别以上的到stdout(控制台) 和R1(自己随便定义的)
=debug,stdout,R1
2.输出到 盘的 根目录下 (不推荐,win和linux 不同),代码如下:.=/
3.项目文件中 (不推荐,容易清理掉).=logs/
系的容器 这种方法不错,切到别的容器就不行了
=${}/logs/
5.在中添加<context-param> <param-name>webAppRootKey</param-name> <param-value></param-value> </context-param>
中.=${}logs/
(这种方法的好处是不区分系统,不区分容器,缺点是会产生垃圾文件,${} 在这个被赋值前有段日志不会在你想要的地方,当然妨碍不大,我推荐只用这种方法)
坦白说,我目前没有一个跨操作系统又能解决路径,还能保存好日志文件的完美解决办法.大家*选择吧.