首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4j正在写入windows共享

log4j正在写入windows共享
EN

Stack Overflow用户
提问于 2010-10-20 23:34:34
回答 2查看 2.2K关注 0票数 1

我有一个在windows机器上运行的java应用程序。

长话短说,我们对每台机器放置日志文件的位置有一个约定:

代码语言:javascript
复制
\\%COMPUTERNAME%\Logs\<AppNameHere>

因此,我将Java应用程序配置为使用-Dmachine.name="%COMPUTERNAME%“启动,然后在我的log4j.properties文件中指定

代码语言:javascript
复制
log4j.appender.R.File = \\${machine.name}\Logs\MyVerySpecialApplicationName\log.log

但是当我运行我的应用程序时,我没有看到目录/文件出现(应用程序做的第一件事就是记录一条启动消息)。

所以我猜测log4j / java不能处理windows特定UNC路径。

其他人遇到这个问题并想出了解决方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-22 09:17:52

我看了Log4j的源代码。它似乎使用java.io.File来保存对您指定的文件名的引用。

此外,java.io.File的Javadoc声明File的构造函数( Log4J使用的)支持UNC路径。

因此,从表面上看,您的配置没有理由不起作用;但是--这是需要注意的重要一点-- Java在SMB上的文件I/O问题由来已久(这正是您正在尝试做的事情)。

我的建议是:

  1. 通过指定-Dlog4j.debug=true启动应用程序。系统属性将使Log4J输出大量调试信息,以帮助您使用相同的配置跟踪problem.
  2. Attempt,只是简单地映射驱动器(我知道您在Windows上运行),而不是引用带有UNC前缀的文件。如果映射驱动器正常工作,这意味着使用UNC前缀中的某些东西是问题的根源(尽管我对此表示怀疑)。
票数 2
EN

Stack Overflow用户

发布于 2016-02-24 02:54:27

您需要为每个配置设置两个回差,如下所示

log4j.appender.Log_Arquivo.File=\\\\172.31.88.168\\server10\\soma_10\\logs\\soma_10.log

我希望这对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3979601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档