0

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ファイルは何のためですか?mule ユーザーが書き込み権限を持つ場所に書き込むように設定するための conf ファイルはどこにありますか?

4

2 に答える 2

2

OS のパーミッションが原因で、log4j がそのファイルを見つけられないようです。chmod を実行して、MULE_HOME ディレクトリにアクセス許可を追加できます。また、log4j 構成を確認して、.log ファイルを読み取ろうとしている理由を確認してください。

于 2012-09-27T16:05:13.270 に答える
0

ファイルは00_mmc-agentアプリ.logからのもののようです。

したがって、問題は、そのようなファイルlog4j.propertiesにある./apps/00_mmc-agent/classesファイルに次のアペンダーが構成されていることにありました。log4j.appender.file.File=${app.name}.log その${app.name}変数は適切に構成されていないようです(デフォルトの変更されていないラバ開始スクリプトでも)。したがって、.logファイル名。

./apps/mmc/webapps/mmc/WEB-INF/classes/log4j.propertiesアペンダーではこのように構成されていますlog4j.appender.R.File=${mule.home}/logs/mmc-console-app.log

そこで、起動エラーを修正するために、にあるlog4j.propertiesファイルのアペンダーを次の./apps/00_mmc-agent/classesパスを持つように変更しました。

log4j.appender.file.File=${mule.home}/logs/00_mmc-agent.log

于 2012-09-28T02:09:35.840 に答える