我有一个在windows机器上运行的java应用程序。
长话短说,我们对每台机器放置日志文件的位置有一个约定:
\\%COMPUTERNAME%\Logs\<AppNameHere>因此,我将Java应用程序配置为使用-Dmachine.name="%COMPUTERNAME%“启动,然后在我的log4j.properties文件中指定
log4j.appender.R.File = \\${machine.name}\Logs\MyVerySpecialApplicationName\log.log但是当我运行我的应用程序时,我没有看到目录/文件出现(应用程序做的第一件事就是记录一条启动消息)。
所以我猜测log4j / java不能处理windows特定UNC路径。
其他人遇到这个问题并想出了解决方法吗?
发布于 2010-10-22 09:17:52
我看了Log4j的源代码。它似乎使用java.io.File来保存对您指定的文件名的引用。
此外,java.io.File的Javadoc声明File的构造函数( Log4J使用的)支持UNC路径。
因此,从表面上看,您的配置没有理由不起作用;但是--这是需要注意的重要一点-- Java在SMB上的文件I/O问题由来已久(这正是您正在尝试做的事情)。
我的建议是:
-Dlog4j.debug=true启动应用程序。系统属性将使Log4J输出大量调试信息,以帮助您使用相同的配置跟踪problem.发布于 2016-02-24 02:54:27
您需要为每个配置设置两个回差,如下所示
log4j.appender.Log_Arquivo.File=\\\\172.31.88.168\\server10\\soma_10\\logs\\soma_10.log
我希望这对你有帮助。
https://stackoverflow.com/questions/3979601
复制相似问题