< p >
RollingFileAppender
创建的文件权限是如何确定的?
最近,我将一个守护进程更改为以非根用户运行,并且文件现在被创建为 0600
的权限(仅由所有者可读),但是我希望它们可以被所有人或至少管理员组的成员读取( 0644
或 0640
)。我的Tomcat应用程序创建的文件始终是 0644
(所有人都可以读取)。
我不知道是否无意中更改了其他内容或者是否与该用户的权限有关。我将父目录设置为 0777
进行测试,但似乎没有什么帮助(它原来是 0755
)。显然这不是什么大问题,因为我可以使用 sudo
查看它们,但是相当烦人,如果我必须让客户复制它们给我,这将是一个问题。
环境是Ubuntu 10.04LTS,使用 jsvc / commons-daemon
来运行守护程序。如果有影响的话,这是我的 log4j
配置的基本信息:
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<appender name="StdOutAppender" class="org.apache.log4j.ConsoleAppender">
<!-- only send error / fatal messages to console (catalina.out) -->
<param name="threshold" value="${log4j.StdOutAppender.threshold}" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
<!--%d{dd-MMM-yyyy HH:mm:ss.SSS} [%5p] %c{2}.%M [line:%L]: %m%n-->
</layout>
</appender>
<appender name="TimeBasedRollingFileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<param name="threshold" value="${log4j.TimeBasedRollingFileAppender.threshold}" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${cloud.daemon.log4j.file.config.path}.%d.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
<!--%d{dd-MMM-yyyy HH:mm:ss.SSS} [%5p] %c{2}.%M [line:%L]: %m%n-->
</layout>
</appender>
....