Ice服务端使用slf4j-log4j日志文件权限问题的解决

[b]引言:[/b]

公司内部小系统原始后台使用java-log4j来写日志,在引入ice后,部署到rhel5(linux redhat 5.4),发现log4j创建不了日志文件(连同目录)。因此纠结了一番。

纠结过程可以在本文“参考”中找到,是官方社区的一篇请教贴。

[b]正文:[/b]

项目在WinXP Sp3系统下运行日志灰常正常。Log4j配置文件如下

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=/opt/demo/logs/demo.log
log4j.appender.logfile.DatePattern=.yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - <%m>%n


部署到rhel5服务器后,如果手工创建好“./logs”目录,则报“.log (Permission denied)”(无权限);如果连目录也等Log4j自行创建则报“.log (No such file or directory)”(文件或目录不存在)。话说,Log4j本身写日志的时候发现如果没有,会连目录一起创建的,因此始终怀疑icegridnode(应用启动入口)动了log4j的“奶酪”。纠结也从此处开始……

############
1)笔者检查icegridnode的权限,发现运行在root上,妥妥得……
2)编写个用Ice.Logger写日志的,没有log4j嘛,又是妥妥得……
——于是有了参考中的这篇请教贴~。=

3)(此处跳过17个小时 Zzz...)

4)第二天一早,来看,Bernard兄给了回复。经过Bernard兄一挑明,回帖过程中,阅读了文档做了实验,猛然反省过来。问题不是icegridnode没有运行在root上,而是IceBox.Server没有运行在root上,而是nobody上。

5)果断添加用户demo,给个“./logs”所有者权限。配置文件中“<node><icebox>”添加属性“user="cep"”。再跑,目录也出了文件也成了。查看进程中的IceBox.Server,先前的“nobody”已经变成“demo”。妥妥得~~~~~~

############

至此问题终于解决了。另外,linux系统用户管理的考虑跟windows的确大有不同。感叹一下,反省两下。rpm包安装提示找不到用户的问题,大抵与此相似吧。


[b]参考:[/b]

[url=http://www.zeroc.com/forums/help-center/5512-log4j-ice-logger-conflict.html]Is log4j and Ice.logger conflict ?[/url]

最后特别感谢Bernard的热情帮助!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值