log4j写入windows共享
我有一个java应用程序在windows机器上运行 长话短说,我们对每台机器放置日志文件的位置有一个约定:log4j写入windows共享,windows,log4j,Windows,Log4j,我有一个java应用程序在windows机器上运行 长话短说,我们对每台机器放置日志文件的位置有一个约定: \\%COMPUTERNAME%\Logs\<AppNameHere> 但我在运行应用程序时没有看到目录/文件(应用程序做的第一件事就是记录启动消息) 所以我猜测log4j/java无法处理特定于windows的UNC路径 还有谁遇到过这个问题并想办法解决吗?我查看了Log4j的源代码。它似乎使用java.io.File保存对指定文件名的引用 另外,java.io.File的
\\%COMPUTERNAME%\Logs\<AppNameHere>
但我在运行应用程序时没有看到目录/文件(应用程序做的第一件事就是记录启动消息)
所以我猜测log4j/java无法处理特定于windows的UNC路径
还有谁遇到过这个问题并想办法解决吗?我查看了Log4j的源代码。它似乎使用
java.io.File
保存对指定文件名的引用
另外,java.io.File
的Javadocs声明File
的构造函数支持UNC路径(Log4J使用)
因此,从表面上看,没有理由认为您的配置不起作用;但是——这是需要注意的重要一点——Java在SMB上的文件I/O问题上有很长的历史(这正是您正在尝试做的)
我的忠告是:
-Dlog4j.debug=true启动应用程序。系统属性将使Log4J提供大量调试信息,以帮助您跟踪问题
您需要为每个齿隙设置两个齿隙,如下配置所示
log4j.appender.Log\u Arquivo.File=\\\\172.31.88.168\\server10\\soma\u 10\\logs\\soma\u 10.Log
我希望这对你有帮助。谢谢,我马上就去试试!我有一个类似的问题,下面是对我有效的方法:如果您的共享路径类似于:“\\ServerName\shareFolder\…\”,请改为:///ServerName/shareFolder/…”
log4j.appender.R.File = \\${machine.name}\Logs\MyVerySpecialApplicationName\log.log