5

Alfresco のテンプレート ページに対応する JavaScript ファイルで logger.log("Hello") を使用しようとしています。

以下を設定しました: - custom-log4j.properties (log4j.properties をオーバーライド)

log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n

log4j.logger.org.alfresco.repo.web.scripts=warn
log4j.logger.org.alfresco.repo.web.scripts.BaseWebScriptTest=info
log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=off
log4j.logger.org.alfresco.repo.jscript=debug
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug
log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info

しかし、js ファイルで logger.log を使用すると、ロガーが定義されていません。

解決策は、custom-slingshot-application-context.xml で以下を設定することでした。

<bean id="webframework.rendition.processor.webtemplate" class="org.springframework.extensions.webscripts.WebTemplateProcessor">
      <property name="templateProcessorRegistry" ref="webframework.templates.registry.templateprocessor" />
      <property name="scriptProcessorRegistry"   ref="webframework.templates.registry.scriptprocessor" />
      <property name="processorModelHelper"      ref="processor.model.helper"></property>
      <property name="webFrameworkConfigElement" ref="webframework.config.element"></property>
      <property name="scriptObjects">
         <map>
            <entry key="remote" value-ref="webframework.webscripts.scriptremote" />
            <entry key="stringUtils">
               <bean class="org.springframework.extensions.webscripts.ScriptableUtils"/>
            </entry>
            <entry key="logger">
               <bean class="org.springframework.extensions.webscripts.ScriptLogger"/>
            </entry>
         </map>
      </property>
   </bean>

logger.log を使用してもエラーは発生しませんが、Tomcat/bin にある alfresco.log に書き込まれていないようです。

誰も手がかりを持っていますか?

4

2 に答える 2

14

リポジトリに適用されるものと共有に適用されるものについて混乱しているようです。

リポジトリ内:

logger.logorg.alfresco.repo.jscript.ScriptLoggerレベルデバッグでカテゴリを使用するため、あなたが持っているものcustom-log4j.propertiesは正しいです(ただし、アペンダーは無視されます)。のクラスパスにあることを確認してくださいalfresco/extension。ディレクトリtomcat/shared/classes/alfresco/extensionは、通常必要なものです。

共有中:

logger.logカテゴリを使用しますorg.springframework.extensions.webscripts.ScriptLogger。私が覚えている限り、そこで利用できる「カスタムlog4jプロパティ構成メカニズム」はないため、追加する必要があります

log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=debug

share/WEB-INF/classes/log4j.properties

于 2013-09-19T09:43:12.753 に答える
8

alfresco を再起動してリポジトリでスクリプトを実行したくない場合は、回避策として別の方法があります。logger.log 以外の logger.system.out を使用してみてください。ログ メッセージは引き続き catalina.out にあります。

于 2015-03-26T17:49:13.217 に答える