背景
在一个客户那边要求系统生成的日志文件权限为600,而系统用的是Log4j1.X来记录日志的,默认权限是644。
解决办法
解决此问题需明确两点即可解决:
1、在哪里去设置日志文件权限?
2、如何设置日志文件权限?
对于第一个问题,会用Log4j的同学应该都知道我们可以自定义Appender来控制日志输出相关很多事情,当然包括输出的目标文件,那么就可以确定我们是可以通过自定义Appender来处理这个问题。
接下来是第二个问题,如何设置日志文件权限。大家知道一般要求控制文件权限都是在Linux系统中,windows一般不存在这种要求;在Linux中很自然的就能想到通过chmod命令就可以解决,但是出于自己对Java的那点小执着,chmod并不是我的第一选项,我还是希望通过Java方法来设置,这时就需要用到PosixFilePermission了,实现代码很简单:
public class MyRollingFileAppender extends RollingFileAppender {
@Override
public synchronized void setFile(String fileName, boolean append,
boolean bufferedIO, int bufferSize) throws IOException {
super.setFile(fileName, append, bufferedIO, bufferSize);
File f =

针对客户要求日志文件权限为600的问题,通过Log4j1.X的自定义Appender尝试用PosixFilePermission设置权限失败,最终采用Linux的chmod命令成功实现日志文件权限设置。
最低0.47元/天 解锁文章
3953

被折叠的 条评论
为什么被折叠?



