【问题标题】:ColdFusion logging reroute to Log4JColdFusion 日志记录重新路由到 Log4J
【发布时间】:2009-06-01 21:29:56
【问题描述】:

我目前在 J2EE 环境 (JBoss) 中使用 ColdFusion 8.01,并希望清理写入日志的内容。目前 ColdFusion 将所有内容记录到 STDOUT,而不是使用像 commons 或 log4j 这样的适当记录器。有没有人设法改变这一点?也许您可以设置一些隐藏的属性,或者将 log4j.properties 隐藏在某个位置。由于 ColdFusion 有 CFLog(输出到 STDOUT),如果可能的话,我希望通过 commons 看到该输出。

【问题讨论】:

    标签: jakarta-ee logging coldfusion jboss apache-commons-logging


    【解决方案1】:

    嘿,Daniel - CF 实际上确实使用 log4j 作为其内部日志记录,并且如果您不喜欢它默认的逗号分隔模式,CF 的配置允许您编辑布局模式。

    您可以在'neo-logger.xml'中编辑模式,

    {your_deployment}/cfusion-war/WEB-INF/cfusion/lib/neo-logger.xml
    

    很遗憾,您可以编辑的其他属性并不多。您也许可以覆盖同一目录下“logger.xml”文件中的根记录器设置,我没有任何运气尝试。在过去,我用它来定义我们用 CF 加载的自定义和第三方 jar 的 log4j 设置。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我们使用带有 CF 8 的 log4j,它运行良好。但是,我们使用的是独立配置。不知道这是否会有很大帮助,但无论如何你都去......

      您需要做的就是将log4j.jar 文件放入CF lib 目录或存储在CF 类路径中适合您的任何其他目录中。一旦你完成了这个重启 CF,你通常可以做这样的事情:

      <!--- Create logger --->
      <cfset objLoggerCategory = CreateObject("java", "org.apache.log4j.Category") />
      <cfset objLogger = objLoggerCategory.getInstance("MY-LOGGER-XML-HOOK") />
      <cfset objLogger.debug("Hello World!") />
      

      显然,您需要配置 Xml 文件,但网上有很多这样的例子。

      我还没有负责覆盖 CF 日志以通过 log4j 运行。也就是说,如果这有帮助,您可以将 CF 日志定向到您喜欢的任何目录。这在 CF 管理员中可用:调试和日志记录 > 日志记录设置。

      干杯。

      【讨论】:

      • 谢谢,但我真的希望将标准 Coldfusion 输出定向到适当的记录器而不是 STDOUT。
      • 嗯...您可以询问 Railo 或 OpenBD 人员,看看他们是否有兴趣将此功能添加到他们的 CFML 引擎中。或者...你可以编写自己的 CFLOG 自定义标签,使用向后兼容的 API。
      猜你喜欢
      • 2010-11-15
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2013-11-08
      • 2020-12-07
      • 1970-01-01
      相关资源
      最近更新 更多