Logging errors with the cflog tag

ColdFusion provides extensive capabilities for generating, managing, and viewing log files, as described in Configuring and Administering ColdFusion. It also provides the  cflog  tag which adds entries to ColdFusion logs.
ColdFusion automatically logs errors to the default logs if you use the default error handlers. In all other cases, use the  cflog  tag in your error handling code to generate log entries.
The  cflog  tag lets you specify the following information:

  • A custom file or standard ColdFusion log file in which to write the message.
  • Text to write to the log file. This can include the values of all available error and  cfcatch  variables.
  • Message severity (type): Information, Warning, Fatal, or Error.
  • Whether to log any of the following: application name, thread ID, system date, or system time. By default, all get logged.
    For example, you could use a  cflog  tag in an exception error-handling page to log the error information to an application-specific log file, as in the following page:
<html> 
<head> 
<title>Products - Error</title> 
</head> 
<body> 

<h2>Sorry</h2> 

<p>An error occurred when you requested this page. 
The error has been logged and we will work to correct the problem. 
We apologize for the inconvenience. </p> 

<cflog type="Error" 
file="myapp_errors" 
text="Exception error -- 
Exception type: #error.type# 
Template: #error.template#, 
Remote Address: #error.remoteAddress#, 
HTTP Reference: #error.HTTPReferer# 
Diagnostics: #error.diagnostics#"> 

</body> 
</html>

Reviewing the code

The following table describes the highlighted code and its function:

Code

Description

<cflog type="Error" 
file="myapp_errors" 
text="Exception error -- 
Exception type: #error.type# 
Template: #error.template#, 
Remote Address: #error.remoteAddress#,
HTTP Reference: #error.HTTPReferer# 
Diagnostics: #error.diagnostics#">

When this page is processed, log an entry in the file myapp_errors.log file in the ColdFusion log directory. Identify the entry as an error message and include an error message that includes the exception type, the path of the page that caused the error, the remote address that called the page, and the error's diagnostic message.

A log file entry like the following is generated if you try to call a nonexistent custom tag and this page catches the error (line breaks added for clarity):

"Error","web-13","12/19/01","11:29:07",MYAPP,"Exception error -- 
Exception type: coldfusion.runtime.CfErrorWrapper 
Template: /MYStuff/MyDocs/exceptiontest.cfm, 
Remote Address: 127.0.0.1, 
HTTP Reference: 
Diagnostics: Cannot find CFML template for custom tag testCase. Cannot 
find CFML template for custom tag testCase. ColdFusion attempted looking 
in the tree of installed custom tags but did not find a custom tag with 
this name."

The text consists of a comma-delimited list of the following entries:

  • Log entry type, specified by the  cflog  type attribute
  • ID of the thread that was executing
  • Date the entry was written to the log
  • Time the entry was written to the log
  • Application name, as specified in the Application.cfc initialization code (by setting the This .application  variable) or by a  cfapplication  tag (for example, in an Application.cfm file).
  • The message specified by the  cflog  text attribute.

 Adobe

Get help faster and easier

New user?