log4j 报错

tomshenhao 2014-12-11 11:13:54
目地:配置log4j将application日志写入统一的centos服务器
报错: 始终无法输入到Z:\
log4j: setFile called: Z:\TomcatThorLog\TheShelter-MyJournal\MyJournal_Access.log, true
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: Z:\TomcatThorLog\TheShelter-MyJournal\MyJournal_Access.log (The system cannot find the path specified)

过程:
1. centos 搭建 user 类型的samba共享文件夹
2. window服务器可以在共享路径下访问并创建删除文件或文件夹,映射成本地Z:\
3. 修改log4j.xml文件,同时输出到C:\ 和Z:\

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="accessFile1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="C:\\TomcatThorLog\\TheShelter-MyJournal\\MyJournal_Access.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="MaxBackupIndex" value="50"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %X{sessionId} %c{1} - %m%n"/>
</layout>
</appender>
<appender name="accessFile2" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="Z:\\TomcatThorLog\\TheShelter-MyJournal\\MyJournal_Access.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="MaxBackupIndex" value="50"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %X{sessionId} %c{1} - %m%n"/>
</layout>
</appender>

<appender name="rollingFile1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="C:\\TomcatThorLog\\TheShelter-MyJournal\\MyJournal.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="MaxBackupIndex" value="50"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %X{sessionId} %c{1} - %m%n"/>
</layout>
</appender>

<appender name="rollingFile2" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="Z:\\TomcatThorLog\\TheShelter-MyJournal\\MyJournal_Access.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="MaxBackupIndex" value="50"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %X{sessionId} %c{1} - %m%n"/>
</layout>
</appender>

<category name="AccessLog" additivity="false">
<priority value="info"/>
<appender-ref ref="accessFile1"/>
<appender-ref ref="accessFile2"/>
</category>

<root>
<priority value="info"/>
<appender-ref ref="rollingFile1"/>
<appender-ref ref="rollingFile2"/>
</root>

</log4j:configuration>
...全文
206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomshenhao 2014-12-15
  • 打赏
  • 举报
回复
搞定了,换了方式,用syslogappender 包,然后日志服务器上开rsyslog服务来接收日志。
tomshenhao 2014-12-15
  • 打赏
  • 举报
回复
引用 5 楼 humanity 的回复:
确保子目录都齐全了,log4j 似乎不会自动地帮你创建子目录。
谢谢回复,我创建了所有相关文件夹Z:\TomcatThorLog\TheShelter-MyJournal\,还是报错: log4j: setFile called: Z:\TomcatThorLog\TheShelter-MyJournal\MyJournal_Access.log, true log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: Z:\TomcatThorLog\TheShelter-MyJournal\MyJournal_Access.log (The system cannot find the path specified)
tomshenhao 2014-12-15
  • 打赏
  • 举报
回复
谢谢回复,目前的情况是应用服务器是windows server 2003的系统,日志服务器是centos的。然后共享使用samba服务。 尝试了半天,只能在user模式(需要用户名和密码)下,应用服务器才能访问并且读写文件夹。 找开发本地(window8.1)写用同样的程序放在tomcat运行。 log4j写法:Y:\\.... 日志是可以写进日志服务器共享目录的。 但是服务器上就是不行。报错有两种 1. z:\\... (本地路径):提示找不到路径 2. \\192.168.204.12\...(网络路径):提示没有权限
humanity 2014-12-13
  • 打赏
  • 举报
回复
确保子目录都齐全了,log4j 似乎不会自动地帮你创建子目录。
猿人林克 2014-12-12
  • 打赏
  • 举报
回复
C:没有问题?外部的Z有问题? 估计是Z盘服务器的端口没有开放,访问不了。
tomshenhao 2014-12-11
  • 打赏
  • 举报
回复
之前也尝试过用网络路径\\\\192.168.204.12\代替Z:\\ 报错是说没有权限, 但是检查过Tomcat用的是administrator用户,然后administrator用户可以在共享文件夹中创建或删除文件或者文件夹。 到底应该如何配置路径? 谢谢各位。
tomshenhao 2014-12-11
  • 打赏
  • 举报
回复
之前也尝试过用网络路径\\\\192.168.204.12\代替Z:\\ 报错是说没有权限, 但是检查过Tomcat用的是administrator用户,然后administrator用户可以在共享文件夹中创建或删除文件或者文件夹。 到底应该如何配置路径? 谢谢各位。
  • 打赏
  • 举报
回复
你做的一个虚拟目录共享远程文件夹,那你本地可以手动创建文件内容吗?你自己可以手动用JAVA IO在这个目录下创建一个文件试试。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧