Logbox Issue - The value returned from the init function is not of type DBAppender

After rebooting the windows server I’m suddenly getting the following error.

The value returned from the init function is not of type DBAppender. |

  • |
    If the component name is specified as a return type, it is possible that either a definition file for the component cannot be found or is not accessible. |

The error occurred in D:/webs/cccetglobal/coldbox/system/logging/LogBox.cfc: line 207
Called from D:/webs/cccetglobal/coldbox/system/logging/LogBox.cfc: line 86
Called from D:/webs/cccetglobal/coldbox/system/web/services/LoaderService.cfc: line 61
Called from D:/webs/cccetglobal/coldbox/system/Coldbox.cfc: line 71
Called from D:/webs/cccetglobal/coldbox/system/Coldbox.cfc: line 102
Called from D:/webs/cccetglobal/Application.cfc: line 85
|


<br>205 : if( NOT structKeyExists(appenders,arguments.name) ){<br>206 : // Create appender<br>**207 : oAppender = createObject("component",arguments.class).init(argumentCollection=arguments);**<br>208 : // Is running within ColdBox<br>209 : if( isObject(instance.coldbox) ){ oAppender.setColdbox(instance.coldbox); }<br>

|

Anyone else seen this before? Below is my Logbox configuration in ColdBox.cfc

`

//LogBox DSL

logBox = {

// Define Appenders

appenders = {

coldboxTracer = { class=“coldbox.system.logging.appenders.ColdboxTracerAppender” },

fileLog = {

class=“coldbox.system.logging.appenders.AsyncRollingFileAppender”,

properties = {

filePath = “logs”,

fileName = coldbox.appName,

autoExpand = true,

fileMaxSize = 2000,

fileMaxArchives = 3

}

},

dbLog = {

class=“coldbox.system.logging.appenders.AsyncDBAppender”,

properties = {

dsn = ‘mydsn’,

table = ‘system_log’,

autocreate = true

},

levelMax = “INFO”,

levelMin = “FATAL”

},

emailLog = {

class=“coldbox.system.logging.appenders.EmailAppender”,

properties = {

from = ‘errors@globalcccet.com’,

to = ‘jsjung@wamdevtech.com’,

subject = 'Error from ’ & cgi.HTTP_HOST & ’ on ’ & DateFormat(Now(), ‘mm/dd/yyyy’) & ‘@’ & TimeFormat(Now(),‘HH:MM:SS’),

mailserver = 'smtp.masked.test,

mailusername = ‘[mailusername]’,

mailpassword = ‘[password]’,

useTLS = ‘true’,

mailport = ‘587’

},

levelMax = “INFO”,

levelMin = “FATAL”

}

},

// Root Logger

root = { levelmax=“INFO”, appenders=“*” },

categories = {

“dblogger” = { levelMin=“FATAL”, levelMax= “INFO”, appenders=“dbLog” },

“emaillogger” = { levelMin=“FATAL”, levelMax= “INFO”, appenders=“emailLog” }

},

OFF = [“coldbox.system”],

// Implicit Level Categories

info = [ “coldbox.system” ]

};

`

Strange but I got it to work by changing from “AsyncDBAppender” to “DBAppender”
Not sure why that would have fixed it. Anyone would like to provide some insight on this issue?

Looks like the return type of the init function is wrong. Many people turn off CFC type checks so the error must have just gone unnoticed. I’ve no idea why you just started getting the error-- I’m guessing that setting recently changed on your server.

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com