java - 无法为元素 RollingFile 创建 org.apache.logging.log4j.core.appender.RollingFileAppender 类型的插件

标签 java logging log4j log4j2

我希望我的应用程序将日志输出到用户主目录中的日志文件中。 因此,我配置了 log4j2.xml 文件,如下所示:

<Configuration>
<Properties>
    <Property name="logfolder">/${sys:user.home}/xx/log/ff</Property>
</Properties>
<Appenders>
    <RollingFile name="user_file" append="true" fileName="${logfolder}/logxyz.csv" filePattern="${logfolder}/old/$${date:yyyy-MM}/service-%d{MM-dd-yyyy}-%i.csv.gz">
        <CsvParameterLayout format="Default" nullString="" charset="UTF-8"/> 
        <Policies>

我可以看到指定文件夹中的日志,但是控制台中显示一些错误:

ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile : java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:\Users\xx/yy/log/abc/def.csv java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:\Users\xx/yy/log/abc/def.csv
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)

该错误似乎与解析 Windows 文件系统有关,但我不知道如何解决此问题。将不胜感激任何指示。我正在 Windows 10 上进行开发,但应用程序日志记录应该是跨平台的。

最佳答案

就我而言,运行该程序的用户无权创建日志目录并写入其中。所以,我只是更改了工作目录的所有者并重新启动程序,没有任何问题。

sudo chown -R runner-user:runner-user working-directory/*

关于java - 无法为元素 RollingFile 创建 org.apache.logging.log4j.core.appender.RollingFileAppender 类型的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49207604/

相关文章:

java - Log4j2:向每个记录行添加特定字符串

java - 为什么 log4j 消息没有显示在控制台中?

java - Java 中翻译 API 的问题

python - 如果我调用logging.config.dictConfig,记录器在初始化后会发生变化

java - 在 Logback 中使用 getAppender()

maven - CATALINA_HOME 和 Maven + LOG4J

java - 使用spring aop理论授权用户操作

java - 我应该使用什么直接 FK 字段或实体对象?

java - 我可以让 log4j 使用资源文件夹中的配置吗?

ruby-on-rails - 如何在 Rails 中使用 Test::Unit 测试记录器输出?