LogBox : Enterprise Logging & Messaging
7.x
7.x
  • Introduction
    • Contribution Guide
    • Release History
      • What's New With 7.2.0
      • What's New With 7.1.0
      • What's New With 7.0.0
    • Upgrading to LogBox 7
    • About This Book
      • Author
  • Getting Started
    • Features at a Glance
    • Installation
      • LogBox Refcard
    • Need For Logging
    • How Does LogBox Work?
      • LogBox
      • Appender
      • Logger
        • Logger Category Inheritance
        • Security Levels
        • Dynamic Appenders
      • Layout
  • Configuration
    • Configuring LogBox
      • LogBox DSL
      • Adding Appenders
      • Adding Categories to Specific Logging Levels
      • Adding Categories Granularly
      • Configuring The Root Logger
  • Usage
    • Using LogBox
    • Using a Logger Object
      • When To Log
      • ExtraInfo Serialization
    • Appender Properties
      • CFAppender
      • ConsoleAppender
      • DBAppender
      • EmailAppender
      • FileAppender
      • RollingFileAppender
      • ScopeAppender
      • SocketAppender
      • TraceAppender
    • LogBox in a ColdBox Application
      • Configuration Within ColdBox
      • Benefits of using LogBox in a ColdBox application
      • Where is LogBox stored in a ColdBox app?
      • LogBox from the ColdBox Proxy
      • The LogBox Injection DSL
  • Extending LogBox
    • Creating Custom Appenders
      • Helper Methods
      • Instance Members
      • Dealing With Custom Layouts
      • Registering Appenders at Runtime
    • Creating a Custom Layout
      • Instance Members
Powered by GitBook
On this page
  • Less Performant
  • Can{} Methods
  • Closure Wrapper

Was this helpful?

Edit on GitHub
Export as PDF
  1. Usage
  2. Using a Logger Object

When To Log

We recommend using the available can{severity}() methods or a closure message approach to determine if we can log at a specific log level before writing the logging method line. This is done as best practice to avoid processing messages that will never be logged anyway.

Less Performant

So let's look at a very simple example of what NOT to do:

log.debug( "This is my log message, some #dynamic# date is here", dataCFC );

This will call the logger's debug() method, execute the lines of code, and then the logger determines if it can be logged.

Can{} Methods

This is okay, but we all love performance and best practice, so we encourage you to do the following:

if( log.canDebug() ){
    log.debug( "This is my log message, some #dynamic# date is here", dataCFC );
}

This way, the logger determines if it can send debug log messages and only if it can.

Closure Wrapper

You can also avoid the if statements by using a closure as the message. This will ONLY execute it if the logging level is available for logging.

log.debug( () => "This is my log message, some #dynamic# date is here", dataCFC );
PreviousUsing a Logger ObjectNextExtraInfo Serialization

Last updated 1 year ago

Was this helpful?