精通 Grails: 在企业中使用 Grails
通过 Grails 使用 log4j
打开 grails-app/conf/Config.groovy 查看 log4j 设置(如清单 6 所示):
清单 6. Config.groovy 中的 log4j 设置
log4j {
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender.'stdout.layout'="org.apache.log4j.PatternLayout"
appender.'stdout.layout.ConversionPattern'='[%r] %c{2} %m%n'
// and so on...
}
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender.'stdout.layout'="org.apache.log4j.PatternLayout"
appender.'stdout.layout.ConversionPattern'='[%r] %c{2} %m%n'
// and so on...
}
启动 Grails 应用程序时,命令提示符上出现的大多数消息是 log4j 消息。这要归功于 org.apache.log4j.ConsoleAppender(更多关于 log4j 的基础知识,请参阅 参考资料)。
注册 log4j MBean
如果需要在没有 JMX 的情况下调整 Grails 的登录设置,只需简单地编辑这个文件并重新启动服务器,但如果更愿意调整这些设置而不重新启动服务器,或者想远程调整它们,那应该怎样做呢?这看起来似乎是 JMX 可选的完美方法。幸运的是,log4j 附带一个方便执行这些任务 MBean。您所需做的只是注册 log4j MBean。
将 entry 的 XML(如清单 7 所示)添加到 resources.xml。这将把 log4j MBean 注入到 MBean 服务器。
清单 7. 将 MBean 注入到 MBean 服务器
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="server" ref="mbeanServer"/>
<property name="beans">
<map>
<entry key="log4j:hierarchy=default">
<bean class="org.apache.log4j.jmx.HierarchyDynamicMBean"/>
</entry>
</map>
</property>
</bean>
<property name="server" ref="mbeanServer"/>
<property name="beans">
<map>
<entry key="log4j:hierarchy=default">
<bean class="org.apache.log4j.jmx.HierarchyDynamicMBean"/>
</entry>
</map>
</property>
</bean>
重新启动 Grails,然后重新启动 JConsole。如果连接到端口 9004 上的 localhost,新的 log4j MBean 应该显示在 MBeans 选项卡中。展开 log4j 树元素,单击默认值,然后单击 Info 选项卡。从刚添加到 resources.xml(参见图 5)的条目中,可以看到配置片段:
图 6. 查看默认 MBean 信息

现在可以通过 JMX 看到 log4j 了,下一步是调整一些登录设置。
0
相关文章