`
zhaoningbo
  • 浏览: 624684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
引言:

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

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

正文:

  项目在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包安装提示找不到用户的问题,大抵与此相似吧。


参考:

  Is log4j and Ice.logger conflict ?

  最后特别感谢Bernard的热情帮助!


1
0
分享到:
评论

相关推荐

    slf4j-log4j12-1.7.25-API文档-中文版.zip

    赠送jar包:slf4j-log4j12-1.7.25.jar; 赠送原API文档:slf4j-log4j12-1.7.25-javadoc.jar; 赠送源代码:slf4j-log4j12-1.7.25-sources.jar; 赠送Maven依赖信息文件:slf4j-log4j12-1.7.25.pom; 包含翻译后的API...

    slf4j-log4j12-1.6.1-API文档-中文版.zip

    赠送jar包:slf4j-log4j12-1.6.1.jar; 赠送原API文档:slf4j-log4j12-1.6.1-javadoc.jar; 赠送源代码:slf4j-log4j12-1.6.1-sources.jar; 赠送Maven依赖信息文件:slf4j-log4j12-1.6.1.pom; 包含翻译后的API文档...

    slf4j-log4j12-1.7.21-API文档-中文版.zip

    赠送jar包:slf4j-log4j12-1.7.21.jar; 赠送原API文档:slf4j-log4j12-1.7.21-javadoc.jar; 赠送源代码:slf4j-log4j12-1.7.21-sources.jar; 赠送Maven依赖信息文件:slf4j-log4j12-1.7.21.pom; 包含翻译后的API...

    slf4j-log4j12-1.7.7.jar下载

    在使用SLF4J和Log4j12时,你需要注意的一点是,由于Log4j1.2相比Log4j2在某些方面可能较旧,例如性能和功能更新,因此在新项目中,你可能会考虑使用更新的SLF4J绑定器,如slf4j-log4j2,以便利用Log4j2的改进特性。...

    log4j + slf4j-api + slf4j-log4j12

    slf4j-log4j12-1.7.x版本是SLF4J针对Log4j 1.2版本的绑定器,它使得应用可以使用SLF4J接口,但实际的日志输出通过Log4j进行。这个桥接器让项目能利用SLF4J的灵活性,同时使用Log4j的成熟实现。 在提供的文件名列表...

    slf4j-log4j12-1.7.12.jar、slf4j-api-1.7.12.jar

    标题中的"slf4j-log4j12-1.7.12.jar"是SLF4J的一个绑定包,它的作用是将SLF4J API与log4j日志框架连接起来。具体来说,这个版本(1.7.12)的绑定包实现了SLF4J的API,并将其桥接到log4j的实现上,使得开发者可以通过...

    slf4j-log4j12 等jar包.rar

    这个"slf4j-log4j12.jar"文件就是SLF4J与Log4j 1.2桥接器的实现,它使得SLF4J调用能够被Log4j 1.2的日志系统捕获并处理。 1. **SLF4J**:SLF4J的设计目标是为各种日志API提供一个简单统一的接口,这样应用程序就...

    slf4j-log4j12-1.5.6.jar

    这个 JAR 文件包含了 SLF4J API 和 Log4j 的适配器,使得 SLF4J 日志调用能够通过此桥接器被转发到 Log4j 进行处理。`1.5.6` 是这个版本的编号,表示这是 SLF4J 和 Log4j 桥接器的一个特定版本。 在使用 Hibernate...

    slf4j-log4j12-1.0.jar

    slf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4j12-1.0.jarslf4j-log4...

    slf4j-log4j12-1.5.5.jar、slf4j-log4j12-1.5.6.jar、slf4j-api-1.5.6.jar

    SLF4J-log4j12桥接库则是连接SLF4J接口与Log4j实现的桥梁,使得开发者可以使用SLF4J的API,同时利用Log4j进行日志记录。 SLF4J-api-1.5.6.jar是SLF4J API的实现,它包含了一系列的日志记录接口,如`Logger`, `Level...

    slf4j-log4j12-1.7.2.jar 亲测可用

    总之,`slf4j-log4j12-1.7.2.jar`是一个方便的工具,它使得Java应用程序可以利用SLF4J的灵活性,同时使用Log4j 1.2进行日志记录。了解如何正确地集成和使用这个绑定包,对于提升Java项目的日志管理和维护能力至关...

    slf4j-log4j12-1.6.6.jar

    SLF4J(Simple Logging Facade for Java)与Log4j12的集成包`slf4j-log4j12-1.6.6.jar`是Java开发中常用的日志处理工具,它允许开发者使用SLF4J的API,同时实现在运行时绑定到Log4j 1.2框架。这个版本的jar包包含了`...

    最新slf4j-1.7.25.zip源码和jar包

    该压缩包中包含以下内容: 1、jcl-over-slf4j-1.7.21.jar 2、jcl-over-slf4j-1.7.21-sources.jar 3、jul-to-slf4j-1.7.21.jar 4、jul-to-slf4j-1.7.21-sources.jar 5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-...

    slf4j-log4j12-1.7.25

    slf4j-log4j12-1.7.25,下载直接jar包,测试可用。

    最新slf4j-1.7.21.zip源码和jar包

    5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-slf4j-1.7.21-sources.jar 7、osgi-over-slf4j-1.7.21.jar 8、osgi-over-slf4j-1.7.21-sources.jar 9、slf4j-android-1.7.21.jar 10、slf4j-android-1.7.21-...

    slf4j-log4j12-1.6.1.jar和slf4j-api-1.6.1.jar

    当需要将SLF4J与特定的日志框架(如Log4j)集成时,就需要使用绑定实现,如slf4j-log4j12-1.6.1.jar。这个绑定包包含了必要的适配器和配置,使得SLF4J调用能够转换为Log4j的调用。 Log4j是Apache组织开发的一款流行...

    slf4j-1.7.21所有相关jar包

    该压缩包中包含以下内容: 1、jcl-over-slf4j-1.7.21.jar 2、jcl-over-slf4j-1.7.21-sources.jar 3、jul-to-slf4j-1.7.21.jar 4、jul-to-slf4j-1.7.21-sources.jar 5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-...

    slf4j-log4j12-1.7.5.jar

    slf4j-log4j12-1.7.5.jar。

    slf4j-log4j12-1.7.16-API文档-中文版.zip

    赠送jar包:slf4j-log4j12-1.7.16.jar; 赠送原API文档:slf4j-log4j12-1.7.16-javadoc.jar; 赠送源代码:slf4j-log4j12-1.7.16-sources.jar; 赠送Maven依赖信息文件:slf4j-log4j12-1.7.16.pom; 包含翻译后的API...

    slf4j-api-1.6.1和slf4j-log4j12-1.6.1和log4j-1.2.16包

    这意味着你的代码将使用SLF4J API进行日志记录,而实际的日志输出则由Log4j控制,包括配置文件(如`log4j.properties`或`log4j.xml`)中的设置。 **log4j-1.2.16** Log4j是Apache软件基金会的一个开源项目,它提供...

Global site tag (gtag.js) - Google Analytics