Changeset 2364
- Timestamp:
- 07/04/09 19:40:26 (4 years ago)
- Location:
- coldbox/trunk
- Files:
-
- 5 modified
-
system/interceptors/Autowire.cfc (modified) (1 diff)
-
system/logging/AbstractAppender.cfc (modified) (1 diff)
-
system/logging/LogBox.cfc (modified) (11 diffs)
-
system/logging/config/LogBoxConfig.cfc (modified) (2 diffs)
-
testing/cases/logging/LogBoxVariousTest.cfc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
coldbox/trunk/system/interceptors/Autowire.cfc
r2247 r2364 133 133 /* Exclude the core plugins from autowires */ 134 134 if( not findnocase("coldbox.system.plugins",targetPath) ){ 135 /* Process Autowire */ 136 instance.beanFactory.autowire(target=targetObject, 137 useSetterInjection=getProperty('enableSetterInjection'), 138 annotationCheck=true, 139 onDICompleteUDF=getProperty('completeDIMethodName'), 140 debugMode=getProperty('debugMode')); 135 try{ 136 /* Process Autowire */ 137 instance.beanFactory.autowire(target=targetObject, 138 useSetterInjection=getProperty('enableSetterInjection'), 139 annotationCheck=true, 140 onDICompleteUDF=getProperty('completeDIMethodName'), 141 debugMode=getProperty('debugMode')); 142 } 143 catch(Any e){ 144 getPlugin("logger").error("Error autowiring handler #getmetadata(targetObject).name#. #e.message# #e.detail#"); 145 throw(message="Error autowiring handler #getmetadata(targetObject).name#",detail="#e.stacktrace#",type="Autowire.AutowireException"); 146 } 141 147 } 142 148 </cfscript> -
coldbox/trunk/system/logging/AbstractAppender.cfc
r2363 r2364 79 79 <!--- Get the name ---> 80 80 <cffunction name="getName" access="public" returntype="string" output="false" hint="Get this appender's name"> 81 <cfreturn instance.name>81 <cfreturn ucase(instance.name)> 82 82 </cffunction> 83 83 -
coldbox/trunk/system/logging/LogBox.cfc
r2363 r2364 51 51 52 52 // Configure LogBox 53 configure( );53 configure(instance.config); 54 54 55 55 // Return LogBox 56 56 return this; 57 57 </cfscript> 58 </cffunction> 59 60 <!--- configure ---> 61 <cffunction name="configure" output="false" access="public." returntype="void" hint="Configure logbox for operation. You can also re-configure LogBox programmatically. Basically we register all appenders here and all categories"> 62 <cfargument name="logBoxConfig" type="coldbox.system.logging.config.LogBoxConfig" required="true" hint="The LogBoxConfig object to use to configure this instance of LogBox"/> 63 <cfscript> 64 var config = arguments.logBoxConfig; 65 var appenders = config.getAppenders(); 66 var key = ""; 67 var categories = config.getCategories(); 68 </cfscript> 69 70 <cflock name="#instance._hash#.logbox.config" type="exclusive" timeout="30" throwontimeout="true"> 71 <cfscript> 72 // Register All Appenders configured 73 for( key in appenders ){ 74 registerNew(argumentCollection=appenders[key]); 75 } 76 // Clean just in case 77 key = ""; 78 // Register All Category Appenders defined in the configuration object. 79 for( key in categories ){ 80 instance.categoryAppenders[key] = getAppendersMap(categories[key].appenders); 81 } 82 </cfscript> 83 </cflock> 58 84 </cffunction> 59 85 … … 74 100 <cfset structClear(getAppenders())> 75 101 </cffunction> 102 103 <!--- removeAppender ---> 104 <cffunction name="removeAppender" output="false" access="public" returntype="boolean" hint="Remove an appender if it exists. Else returns false."> 105 <cfargument name="name" type="string" required="true" hint="The appender's name"/> 106 <cfscript> 107 if( appenderExists(arguments.name) ){ 108 getAppenders().remove(ucase(arguments.name)); 109 return true; 110 } 111 return false; 112 </cfscript> 113 </cffunction> 76 114 77 115 <!--- hasAppenders ---> … … 95 133 <cfscript> 96 134 if( appenderExists(arguments.name) ){ 97 return structFind(getAppenders(), arguments.name);135 return structFind(getAppenders(),ucase(arguments.name)); 98 136 } 99 137 else{ 100 getutil().throwit(message="Appender #arguments.name# does not exist.", type="LogBox.AppenderNotFound");138 getutil().throwit(message="Appender #arguments.name# does not exist.",detail="The appenders registered are #structKeyList(getAppenders())#",type="LogBox.AppenderNotFound"); 101 139 } 102 140 </cfscript> … … 106 144 <cffunction name="appenderExists" output="false" access="public" returntype="boolean" hint="Checks to see if a specified appender exists by name."> 107 145 <cfargument name="name" type="string" required="true" hint="The name of the appender to check if it is registered"/> 108 <cfreturn structKeyExists(getAppenders(), arguments.name)>146 <cfreturn structKeyExists(getAppenders(), ucase(arguments.name))> 109 147 </cffunction> 110 148 … … 115 153 <!--- ************************************************************* ---> 116 154 <cfset var name = ""> 117 <!--- Verify Name ---> 155 156 <!--- Verify the appender's Name ---> 118 157 <cfif NOT len(arguments.appender.getName())> 119 158 <cfthrow message="Appender does not have a name, please instantiate the appender with a unique name." … … 122 161 <cfset name = arguments.appender.getName()> 123 162 </cfif> 163 124 164 <!--- Verify Registration ---> 125 165 <cfif NOT appenderExists(name)> 126 <cflock name="#instance._hash#. #name#" type="exclusive" throwontimeout="true" timeout="30">166 <cflock name="#instance._hash#.registerappender.#name#" type="exclusive" throwontimeout="true" timeout="30"> 127 167 <cfscript> 128 168 if( NOT appenderExists(name) ){ … … 151 191 <!--- ************************************************************* ---> 152 192 <cfscript> 153 // Create Logger?154 var target= createObject("component",arguments.class).init(argumentCollection=arguments);193 // Create new appender object 194 var appender = createObject("component",arguments.class).init(argumentCollection=arguments); 155 195 156 196 // Register it 157 register( target);158 159 return target;197 register(appender); 198 199 return appender; 160 200 </cfscript> 161 201 </cffunction> … … 169 209 <cfif appenderExists(arguments.name)> 170 210 <cfscript> 171 // Get logger172 appender = structFind(allAppenders,arguments.name);211 // Get Appender 212 appender = getAppender(arguments.name); 173 213 // Run un-registration event 174 214 appender.onUnRegistration(); 175 215 // Unregister it 176 allAppenders.remove(arguments.name);216 removeAppender(arguments.name); 177 217 178 218 return true; … … 191 231 var args = structnew(); 192 232 var config = getConfig(); 193 var appenders = getCategoryAppenders();233 var categoryAppenders = getCategoryAppenders(); 194 234 var categoryConfig = ""; 195 235 … … 202 242 args.levelMin = categoryConfig.levelMin; 203 243 args.levelMax = categoryConfig.levelMax; 204 // Get Appenders from storage map205 args.appenders = appenders[arguments.category];244 // Get Appenders from category storage map 245 args.appenders = categoryAppenders[arguments.category]; 206 246 } 207 247 … … 285 325 <!------------------------------------------- PRIVATE ------------------------------------------> 286 326 287 <!--- configure --->288 <cffunction name="configure" output="false" access="private" returntype="void" hint="Configure logbox for operation">289 <cfscript>290 var config = getConfig();291 var appenders = config.getAppenders();292 var key = "";293 var categories = config.getCategories();294 295 // Register All Appenders configured296 for( key in appenders ){297 registerNew(argumentCollection=appenders[key]);298 }299 // Clean just in case300 key = "";301 // Register All Category Appenders defined in the configuration object.302 for( key in categories ){303 instance.categoryAppenders[key] = getAppendersMap(categories[key].appenders);304 }305 </cfscript>306 </cffunction>307 308 327 <!--- getAppendersMap ---> 309 <cffunction name="getAppendersMap" output="false" access="private" returntype="struct" hint="Get a map of appenders by list ">328 <cffunction name="getAppendersMap" output="false" access="private" returntype="struct" hint="Get a map of appenders by list. Usually called to get a category of appenders."> 310 329 <cfargument name="appenders" type="string" required="true" hint="The list of appenders to get"/> 311 330 <cfscript> 312 331 var x =1; 313 var appenders = getAppenders();314 332 var Collections = createObject("java", "java.util.Collections"); 315 var map = Collections.synchronizedMap(CreateObject("java","java.util.LinkedHashMap").init(listlen(arguments.appenders))); 316 333 var appendersMap = Collections.synchronizedMap(CreateObject("java","java.util.LinkedHashMap").init(listlen(arguments.appenders))); 334 335 // Go over appender's list and configure it 317 336 for(x=1; x lte listlen(arguments.appenders); x=x+1){ 318 thisAppender = listGetAt(arguments.appenders,x);319 map[thisAppender] = appenders[thisAppender];320 } 321 322 return map;337 thisAppender = ucase(listGetAt(arguments.appenders,x)); 338 appendersMap[thisAppender] = getAppender(thisAppender); 339 } 340 341 return appendersMap; 323 342 </cfscript> 324 343 </cffunction> -
coldbox/trunk/system/logging/config/LogBoxConfig.cfc
r2363 r2364 35 35 <cfargument name="levelMax" type="numeric" required="false" default="5" hint="The default log level for this appender, by default it is 5. Optional. ex: LogBox.logLevels.WARNING"/> 36 36 <cfargument name="properties" type="struct" required="false" default="#structnew()#" hint="The structure of properties to configure this appender with."/> 37 <cfset instance.appenders[ arguments.name] = arguments>37 <cfset instance.appenders[ucase(arguments.name)] = arguments> 38 38 </cffunction> 39 39 … … 47 47 var x = 1; 48 48 49 //Verify appender list 50 if( NOT listLen(arguments.appenders) ){ 51 $throw("Invalid Appenders","Please send in at least one appender for a category","LogBoxConfig.InvalidAppenders"); 52 } 53 49 54 // Verify Appenders first 50 55 for(x=1; x lte listlen(arguments.appenders); x=x+1){ 51 if( NOT structKeyExists(instance.appenders, listGetAt(arguments.appenders,x)) ){56 if( NOT structKeyExists(instance.appenders, ucase(listGetAt(arguments.appenders,x))) ){ 52 57 $throw(message="Invalid appender", 53 58 detail="The appender #listGetAt(arguments.appenders,x)# has not been defined yet. Please define it first.", -
coldbox/trunk/testing/cases/logging/LogBoxVariousTest.cfc
r2363 r2364 2 2 <cfscript> 3 3 function setup(){ 4 // Create logbox config 4 5 config = createObject("component","coldbox.system.logging.config.LogBoxConfig").init(); 6 // Configure two appenders 5 7 config.addAppender(name="CFConsole",class="coldbox.system.logging.appenders.ConsoleAppender"); 6 config.addAppender(name="DBConsole",class="coldbox.system.logging.appenders.DBAppender", 7 levelMin="0",levelMax="1", 8 properties={dsn="test",table="logs",autocreate="true",defaultCategory=""}); 8 config.addAppender(name="MyCF",class="coldbox.system.logging.appenders.CFAppender"); 9 9 10 //Create some nice categories 11 config.addCategory(name="coldbox.testing.VariousTests",levelMin=3,appenders="CFConsole"); 12 config.addCategory(name="MyCat",levelMin=3,appenders="cfconsole"); 13 14 //create logbox 10 15 logbox = getMockBox().createMock(className="coldbox.system.logging.LogBox").init(config); 11 16 … … 13 18 14 19 function test1(){ 15 logBox.info(message="Hola Henrik"); 20 //Log to all appenders 21 logBox.info(message="Hola from various testing."); 22 23 logger = logBox.getLogger("Mycat"); 24 logger.trace("just an error message"); 25 26 16 27 } 17 28 </cfscript>
