/// <summary> /// Starts the application /// </summary> public static void Start() { #if DEBUG // Setup the logging view for Sentinel - http://sentinel.codeplex.com var sentinalTarget = new NLogViewerTarget() { Name = "sentinal", Address = "udp://127.0.0.1:9999" }; var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget); LogManager.Configuration.AddTarget("sentinal", sentinalTarget); LogManager.Configuration.LoggingRules.Add(sentinalRule); // Setup the logging view for Harvester - http://harvester.codeplex.com var harvesterTarget = new OutputDebugStringTarget() { Name = "harvester", Layout = new Log4JXmlEventLayout() }; var harvesterRule = new LoggingRule("*", LogLevel.Trace, harvesterTarget); LogManager.Configuration.AddTarget("harvester", harvesterTarget); LogManager.Configuration.LoggingRules.Add(harvesterRule); LogManager.ReconfigExistingLoggers(); #endif // Configure this.Log() for NLog Log.InitializeWith<NLogLog>(); }
static Log() { #if DEBUG // Setup the logging view for Sentinel - http://sentinel.codeplex.com var sentinalTarget = new NLogViewerTarget { Name = "sentinal", Address = "udp://127.0.0.1:9999" }; var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget); LogManager.Configuration.AddTarget("sentinal", sentinalTarget); LogManager.Configuration.LoggingRules.Add(sentinalRule); // Setup the logging view for Harvester - http://harvester.codeplex.com var harvesterTarget = new OutputDebugStringTarget() { Name = "harvester", Layout = new Log4JXmlEventLayout() }; var harvesterRule = new LoggingRule("*", LogLevel.Trace, harvesterTarget); LogManager.Configuration.AddTarget("harvester", harvesterTarget); LogManager.Configuration.LoggingRules.Add(harvesterRule); #endif LogManager.ReconfigExistingLoggers(); Instance = LogManager.GetCurrentClassLogger(); }
private static void SetupDebugLogging() { var config = new LoggingConfiguration(); // console target var consoleTarget = new ColoredConsoleTarget() { Layout = @"${date:format=HH\\:MM\\:ss} ${logger} ${message}" }; config.AddTarget("console", consoleTarget); // debugger out target var debugOutTarget = new OutputDebugStringTarget() { Layout = @"[${logger} ${date:format=HH\\:MM\\:ss}] ${message}" }; config.AddTarget("debug", debugOutTarget); // file target var fileTarget = new FileTarget() { FileName = "${basedir}/log.txt", DeleteOldFileOnStartup = true, EnableFileDelete = true, Layout = "${longdate} - ${message}" }; config.AddTarget("file", fileTarget); var ruleConsole = new LoggingRule("*", LogLevel.Debug, consoleTarget); config.LoggingRules.Add(ruleConsole); var ruleDebugOut = new LoggingRule("*", LogLevel.Debug, debugOutTarget); config.LoggingRules.Add(ruleDebugOut); var ruleFile = new LoggingRule("*", LogLevel.Trace, fileTarget); config.LoggingRules.Add(ruleFile); LogManager.Configuration = config; }
internal static void InitNLog() { var config = new LoggingConfiguration(); try { ConfigurationItemFactory.Default = new ConfigurationItemFactory(); foreach (var type in typeof(Logger).Assembly.GetTypes()) { ConfigurationItemFactory.Default.RegisterType(type, string.Empty); } } catch (ReflectionTypeLoadException rtle) { // NLog has a bug that manifests itself on .NET framework 2.0 with no service pack // wherein when it does its own type registering, it can't handle types that depend // on a type in an assembly that hasn't been loaded yet. // See: http://nlog-project.org/forum#nabble-td5542525 // Also: http://msdn.microsoft.com/en-us/library/system.reflection.assembly.gettypes.aspx // Start over with a fresh ConfigurationItemFactory ConfigurationItemFactory.Default = new ConfigurationItemFactory(); foreach (var type in rtle.Types) { if (type != null) { ConfigurationItemFactory.Default.RegisterType(type, string.Empty); } } } ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("dateutc", typeof(DateUtcLayoutRenderer)); ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("messagewithexceptioninfo", typeof(MessageWithExceptionInfoLayoutRenderer)); var versionString = Assembly.GetExecutingAssembly().GetName().Version.ToString(); var basicLayout = "[${dateutc}] DesktopBootstrap-" + versionString + ": ${level}: ${messagewithexceptioninfo}"; var rootLogDir = LibraryIO.FindWritableDirectory(CommonDirectories.LocalAppData, CommonDirectories.CurrentExecutingDirectory, CommonDirectories.Temp); // Create targets and rules var outputDebugStringTarget = new OutputDebugStringTarget(); outputDebugStringTarget.Layout = basicLayout; config.AddTarget("outputdebugstring", outputDebugStringTarget); if (Library.IsDebugMode()) { config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, outputDebugStringTarget)); } var consoleTarget = new ColoredConsoleTarget(); consoleTarget.Layout = basicLayout; config.AddTarget("console", consoleTarget); if (Debugger.IsAttached) { config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, consoleTarget)); } if (rootLogDir != null) { var basicLogFileTarget = new FileTarget(); var logDirectory = Path.Combine(rootLogDir, "Logs"); basicLogFileTarget.FileName = Path.Combine(logDirectory, "DesktopBootstrap.log"); basicLogFileTarget.ArchiveFileName = Path.Combine(logDirectory, "DesktopBootstrap-{#}.log"); basicLogFileTarget.ArchiveAboveSize = 1024 * 1024; // 1 MB basicLogFileTarget.ArchiveNumbering = ArchiveNumberingMode.Rolling; basicLogFileTarget.MaxArchiveFiles = 14; basicLogFileTarget.Encoding = UTF8Encoding.UTF8; basicLogFileTarget.ConcurrentWrites = false; basicLogFileTarget.KeepFileOpen = false; basicLogFileTarget.Layout = basicLayout; config.AddTarget("file", basicLogFileTarget); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, basicLogFileTarget)); var errorLogFileTarget = new FileTarget(); var errorLogDirectory = Path.Combine(rootLogDir, "ErrorLogs"); errorLogFileTarget.FileName = Path.Combine(logDirectory, "DesktopBootstrapError.log"); errorLogFileTarget.ArchiveFileName = Path.Combine(logDirectory, "DesktopBootstrapError-{#}.log"); errorLogFileTarget.ArchiveAboveSize = 1024 * 1024; // 1 MB errorLogFileTarget.ArchiveNumbering = ArchiveNumberingMode.Rolling; errorLogFileTarget.MaxArchiveFiles = 14; errorLogFileTarget.Encoding = UTF8Encoding.UTF8; errorLogFileTarget.ConcurrentWrites = true; errorLogFileTarget.KeepFileOpen = false; errorLogFileTarget.Layout = basicLayout; config.AddTarget("errorfile", errorLogFileTarget); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Error, errorLogFileTarget)); } // Activate the configuration LogManager.ThrowExceptions = false; // swallow logging exceptions LogManager.Configuration = config; }