【问题标题】:Can't add a rolling file appender with Log4j2.properties无法使用 Log4j2.properties 添加滚动文件附加程序
【发布时间】:2021-07-11 11:40:37
【问题描述】:

我有一个在 docker 容器中运行的 java 应用程序。我无法更改程序,但可以更改 log4j2.properties 文件。我想添加一个滚动文件附加程序,但是当我这样做时,我得到了这个错误:

ERROR An exception occurred processing Appender file_appender java.security.AccessControlException: access denied ("java.io.FilePermission" "shared_logs" "read")

然后我将所有权限授予我的 shared_logs 文件夹

chmod 777 shared_logs

但错误仍然存​​在。 这就是我添加附加程序的方式:

appender.fa.type = RollingFile
appender.fa.name = file_appender
appender.fa.fileName = shared_logs/elastic.log
appender.fa.filePattern = shared_logs/elastic-%d{yyyy-dd-MM}-%i.log.gz
appender.fa.layout.type = PatternLayout
appender.fa.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.fa.policies.type = Policies
appender.fa.policies.time.type = TimeBasedTriggeringPolicy
appender.fa.policies.size.type = SizeBasedTriggeringPolicy
appender.fa.policies.size.size = 500
appender.fa.strategy.type = DefaultRolloverStrategy
appender.fa.strategy.max = 5

“fa”代表fileappender

【问题讨论】:

    标签: log4j2 appender


    【解决方案1】:

    好吧,你显然还有权限问题。您的 fileName 是一个相对文件,因此创建它的位置将基于您的应用程序的当前目录。这通常是您的应用所在的目录或根目录。如果它是根目录并且您希望它在您的应用程序中,这将解释问题。如果您将 -Dlog4j2.debug 添加到启动选项中,您将看到 Log4j 尝试创建文件的位置。

    在 Docker 容器中写入日志文件通常也不被认为是最佳实践。如果您还没有,我建议您查看 Log4j 网站上的Logging in the Cloud

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2016-10-14
      • 1970-01-01
      相关资源
      最近更新 更多