如何为`share-amp`配置`log4j`

时间:2015-02-12 19:44:24

标签: log4j alfresco alfresco-share

我正在使用share-amp-archetype尝试为我的模块设置log4j,我必须在哪里放置log4j.properties

我曾在src/main/amp/config/alfresco/{moduleId}尝试过,但似乎无效。

在我的javascript webscript控制器中写入logger.log("I´m here!")时,不会记录任何内容,而是logger.warn("I´m here!")正常工作。

在我的源文件中,我的文件是(src/main/amp/config/alfresco/{moduleId}

log4j.logger.org.springframework.extensions.webscripts=info
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=debug
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off

/src/test/resources/log4j.properties

...
log4j.logger.org.springframework.extensions.webscripts=info
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=debug
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
...

注意:在lo4j.properties中搜索/target我可以看到5个文件!!

target\test-classes\lo4j.properties
target\test-classes\alfresco\module\{moduleId}\lo4j.properties
target\{moduleId}-war\WEB-INF\classes\lo4j.properties
target\{moduleId}-war\WEB-INF\classes\alfresco\module\share-asesorPlus\lo4j.properties
target\{moduleId}\config\alfresco\module\{moduleId}\lo4j.properties

1 个答案:

答案 0 :(得分:4)

您提及的位置似乎取自Alfresco Repository extensions - logging guide,而不是Alfresco共享扩展部分,这就是他们无法正常工作的原因

据我检查/记住,Share并没有(开箱即用)定义要加载的扩展/模块log4j文件的上下文文件。

因此,您首先需要在模块中添加一个上下文文件:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
  <bean id="log4JHierarchyInit" class="org.alfresco.repo.admin.Log4JHierarchyInit" init-method="init">
     <property name="extraLog4jUrls">
         <list>
           <value>classpath*:alfresco/module/*/log4j.properties</value>
         </list>
     </property>
   </bean>
</beans>

在放大器中的适当命名的上下文文件中弹出,然后您可以在config/alfresco/{moduleId}/下创建一个log4j属性文件并使用它

(该片段取自Alfresco Repository war配置,它支持模块log4j文件作为标准。您需要在Share中启用类似的bean定义)