我们在同一台服务器上运行多个应用程序,默认日志文件最终变得混乱,特别是管理面板不提供搜索功能的异常日志。
是否可以将与给定应用程序(由Application.cfm或.cfc定义)相关的Coldfusion日志记录到单独的日志中?
如果没有,这个问题的替代解决方案是什么?
答案 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是为了安全起见。)