SyC*_*ode 6 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>
Run Code Online (Sandbox Code Playgroud)
我可以看到指定文件夹中的日志,但是在控制台中显示了一些错误:
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)
Run Code Online (Sandbox Code Playgroud)
该错误似乎与解析 Windows 文件系统有关,但我不知道该怎么做。将欣赏任何方向。我正在 Windows 10 上开发,但应用程序日志记录应该是跨平台的。
小智 1
我对环境变量做了类似的事情。user.home 应该是完全限定的路径,不需要任何前缀。例子:
user.home == C:\Users\dumbo
尝试从日志文件夹中删除第一个斜杠。
从:
<Property name="logfolder">/${sys:user.home}/xx/log/ff</Property>
到:
<Property name="logfolder">${sys:user.home}/xx/log/ff</Property>
| 归档时间: |
|
| 查看次数: |
11912 次 |
| 最近记录: |