mule service start script使用日志文件引发异常

时间:2012-09-27 12:24:43

标签: service mule rhel

我正在尝试重写mule启动脚本,因此它在RHEL上作为服务工作。

目前我已经完成了它。 它正在启动,我将大部分日志文件成功写入我想要的位置。 但是有一个名为字面.log的文件,我不知道它是什么,也不知道在哪里配置(它的名称和路径)。

此类文件在启动时在mule_ee.log中添加以下令人讨厌的行:

log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: .log (Permission denied)
    at java.io.FileOutputStream.openAppend(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:207)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
    at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:809)
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547)
    at org.mule.module.launcher.log4j.ApplicationAwareRepositorySelector.configureFrom(ApplicationAwareRepositorySelector.java:166)
    at org.mule.module.launcher.log4j.ApplicationAwareRepositorySelector.getLoggerRepository(ApplicationAwareRepositorySelector.java:95)
    at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:208)
    at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
    at org.mule.module.logging.MuleLoggerFactory.getLogger(MuleLoggerFactory.java:77)
    at org.mule.module.logging.DispatchingLogger.getLogger(DispatchingLogger.java:419)
    at org.mule.module.logging.DispatchingLogger.isInfoEnabled(DispatchingLogger.java:191)
    at org.apache.commons.logging.impl.SLF4JLog.isInfoEnabled(SLF4JLog.java:78)
    at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:188)
    at org.mule.module.launcher.application.PriviledgedMuleApplication.init(PriviledgedMuleApplication.java:46)
    at org.mule.module.launcher.application.ApplicationWrapper.init(ApplicationWrapper.java:64)
    at org.mule.module.launcher.DefaultMuleDeployer.deploy(DefaultMuleDeployer.java:46)
    at org.mule.module.launcher.DeploymentService.guardedDeploy(DeploymentService.java:398)
    at org.mule.module.launcher.DeploymentService.start(DeploymentService.java:181)
    at org.mule.module.launcher.MuleContainer.start(MuleContainer.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.mule.module.reboot.MuleContainerWrapper.start(MuleContainerWrapper.java:56)
    at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:3925)`

那个.log文件是什么? conf文件在哪里设置为在mule用户有权写入的位置写入?

2 个答案:

答案 0 :(得分:2)

似乎log4j无法找到该文件,因为操作系统权限。您可以chmod在MULE_HOME目录中添加权限。还要检查你的log4j配置,看看为什么试图读取.log文件。

答案 1 :(得分:0)

.log文件似乎来自 00_mmc-agent 应用。

因此问题出现在位于log4j.properties的{​​{1}}文件中,此文件配置了以下appender:./apps/00_mmc-agent/classes 似乎没有正确配置log4j.appender.file.File=${app.name}.log变量(即使在默认的未修改的mule启动脚本中也是如此)。因此${app.name}文件名。

.log中,appender的配置方式与此./apps/mmc/webapps/mmc/WEB-INF/classes/log4j.properties

相同

因此,为了修复启动错误,我修改了位于log4j.appender.R.File=${mule.home}/logs/mmc-console-app.log的{​​{1}}文件的appender以获得此路径:

log4j.properties