首页 > 解决方案 > 如何在 log4j.properties 文件中设置文件权限

问题描述

我正在使用 slf4j-log4j12 最新版本 1.7.25。我们正在使用 kibana 查看日志,但是 Kibana 无法从 tomcat 读取日志。我需要在 log4j.properties 文件中设置 filePermissions 以从 tomcat 读取文件。

filePermissions="rw-r-----"

我的 log4j.properties 文件,

# Put log messages in rolling log file
log4j.rootLogger=info, file
log4j.logger.com.sample=debug
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/MyService.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %c{4} %M:%L - %m%n

请提供您对此的想法

标签: javalogginglog4j

解决方案


如果我的问题正确。关于官方文档:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" name="MyApp" packages="">
  <Properties>
    <Property name="baseDir">logs</Property>
  </Properties>
  <Appenders>
    <RollingFile name="RollingFile" fileName="${baseDir}/app.log"
                 filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{yyyyMMdd}.log.gz"
                 filePermissions="rw-------">
      <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
      <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
      <DefaultRolloverStrategy stopCustomActionsOnError="true">
        <PosixViewAttribute basePath="${baseDir}/$${date:yyyy-MM}" filePermissions="r--r--r--">
            <IfFileName glob="*.gz" />
        </PosixViewAttribute>
      </DefaultRolloverStrategy>
    </RollingFile>
  </Appenders>

  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>

</Configuration>

链接:https ://logging.apache.org/log4j/2.x/manual/appenders.html

可能是log4j.appender.file.filePermissions=rw------- ,但应该测试!想法是将此属性配置为其他属性。


推荐阅读