using DecisionsFramework; using System; using DecisionsFramework.Design.Flow; namespace DecisionsLoggingSample { [AutoRegisterMethodsOnClass(true, "SampleSteps", "Logging", RegisterForAgents = true)] public class LoggingExample { //Note: the name (e.g. "Example Log") you provide here will prefix the logs //that you write with this instance of Log. //For example an info level log written with this Log will look like the following: //[Info],09 Jan 2013 16:39:11,Thread 23,Exmaple Log [Message]:Info level message private static Log log = new Log("Example Log"); public static void writeToDecisionsLogs() { //create an exception we can use in logging try { int zero = 0; int number = 5 / zero; } catch (Exception ex) { //The Info, Debug and Warn levels are very similar. //They take the same inputs and using one instead of the other //just changes the level at which the log is written. //Currently the first (object) parameter is not used in these levels and can be set to null. //Looks like: [Info],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Info level message. Today is Thursday Jan 10th 2013 log.LogInfo(null, "Info level message. Today is {0} {1} {2}", "Thursday", "Jan 10th", "2013"); //Looks like: [Debug],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Debug level message log.LogDebug(null, "Debug level message"); //Looks like: [Warn],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Warm level message log.LogWarn(null, "Warm level message"); //LogError can be used in three ways. This level does use the object input parameter and so can be set to null or to a value; //Looks like: [Error],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Error level message log.LogError(null, "Error level message"); //Looks like: [Error],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Attempted to divide by zero. [Exception]:System.DivideByZeroException: Attempted to divide by zero. at DecisionsLoggingSample.LoggingExample.writeToDecisionsLogs() log.LogError(null, ex); //Looks like: [Error],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Error level message [Exception]:System.DivideByZeroException: Attempted to divide by zero. at DecisionsLoggingSample.LoggingExample.writeToDecisionsLogs() log.LogError(null, ex, "Error level message"); //Currently the first (object) parameter is not used in these levels and can be set to null. //Looks like: [Fatal],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Fatal level message [Exception]:System.DivideByZeroException: Attempted to divide by zero. at DecisionsLoggingSample.LoggingExample.writeToDecisionsLogs() log.LogFatal(null, "Fatal level message", ex); //Looks like: [Fatal],14 Jan 2013 11:12:05,Thread 17,Example Log [Message]:Fatal level message log.LogFatal(null, "Fatal level message"); } } } }