为每个应用分配一个错误日志文件

时间:2014-07-15 11:55:53

标签: coldfusion coldfusion-7

我们在同一台服务器上运行多个应用程序,默认日志文件最终变得混乱,特别是管理面板不提供搜索功能的异常日志。

是否可以将与给定应用程序(由Application.cfm或.cfc定义)相关的Coldfusion日志记录到单独的日志中?

如果没有,这个问题的替代解决方案是什么?

2 个答案:

答案 0 :(得分:1)

我建议使用application.cfc onError方法在单独的日志文件中记录未捕获的错误。此文档也可能有所帮助:Handling errors in Application.cfc

答案 1 :(得分:0)

以下是使用 application.cfc 中的onError函数将错误记录到特定于应用程序的日志文件的基本示例。

<cfcomponent output="false">

    <cfset this.name    =   "myApp">

    <cffunction name="onError">
        <cfargument name="exception" required="true">
        <cfargument name="eventName" type="string" required="true">
        <cfset var myAppName    =   this.name>
        <cfset var details  =   "">
        <!--- You need to specify and check for the exception details you want to include in your log text --->
        <cfif IsDefined( "exception.type" )>
            <cfset details = "Type: #exception.type#. ">
        </cfif>
        <cfif IsDefined( "exception.message" )>
            <cfset details = details & "Details: #exception.message#">
        </cfif>
        <cflog type="error" file="#myAppName#" text="#details#">
        <!--- Specify how you want the error to be handled once it's been logged --->
        <cfdump var="#exception#">
    </cffunction>

</cfcomponent>

您需要指定要包含在日志条目中的异常详细信息的哪些部分,请记住异常结构的键将根据引发的错误类型而有所不同。因此,最好在将它们添加到日志文本之前检查它们的存在。

Official onError docs for ColdFusion MX7(因为你的问题用该版本标记 - 这也是为什么我在我的例子中使用标签而不是cfscript是为了安全起见。)