public WorkerRole(Settings settings) { string logDir = Path.Combine(Environment.CurrentDirectory, "Logs"); try { // Configure NLog LoggingConfiguration config = new LoggingConfiguration(); // Console Target bool inCloud = false; try { inCloud = RoleEnvironment.IsAvailable; } catch { } // Get the logs resource if it exists and use it as the log dir try { if (RoleEnvironment.IsAvailable) { LocalResource logsResource = RoleEnvironment.GetLocalResource("Logs"); logDir = logsResource.RootPath; } } catch (Exception) { // Just use basedir. } // File Target FileTarget jobLogTarget = new FileTarget() { FileName = Path.Combine(logDir, "Jobs", "${logger:shortName=true}.${date:yyyy-MM-dd-HHmm}.log.json"), }; ConfigureFileTarget(jobLogTarget); config.AddTarget("file", jobLogTarget); FileTarget hostTarget = new FileTarget() { FileName = Path.Combine(logDir, "Host", "Host.${date:yyyy-MM-dd-HHmm}.log") }; ConfigureFileTarget(hostTarget); config.AddTarget("file", hostTarget); if (!inCloud) { var consoleTarget = new SnazzyConsoleTarget(); config.AddTarget("console", consoleTarget); consoleTarget.Layout = "[${logger:shortName=true}] ${message}"; LoggingRule allMessagesToConsole = new LoggingRule("*", NLog.LogLevel.Trace, consoleTarget); config.LoggingRules.Add(allMessagesToConsole); } // All other rules transfer all kinds of log messages EXCEPT Trace. LoggingRule hostToFile = new LoggingRule("JobRunner", NLog.LogLevel.Debug, hostTarget); config.LoggingRules.Add(hostToFile); LoggingRule roleToFile = new LoggingRule("WorkerRole", NLog.LogLevel.Debug, hostTarget); config.LoggingRules.Add(roleToFile); LoggingRule jobLogs = new LoggingRule("Job.*", NLog.LogLevel.Debug, jobLogTarget); config.LoggingRules.Add(jobLogs); LogManager.Configuration = config; _logger = LogManager.GetLogger("WorkerRole"); } catch (Exception ex) { File.WriteAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FatalError.txt"), ex.ToString()); } _logger.Info("Logging Enabled to {0}", logDir); try { if (RoleEnvironment.IsAvailable) { ConfigureAzureDiagnostics(logDir); } else { _logger.Info("Skipping Azure Diagnostics, we aren't in Azure"); } } catch (Exception ex) { _logger.InfoException("Skipping Azure Diagnostics, we got an exception trying to check if we are in Azure", ex); } try { _runner = LoadJobRunner(settings); } catch (Exception ex) { _logger.ErrorException("Error loading Job Runner", ex); } }
public WorkerRole(Settings settings) { string logDir = Path.Combine(Environment.CurrentDirectory, "Logs"); try { // Configure NLog LoggingConfiguration config = new LoggingConfiguration(); // Console Target var consoleTarget = new SnazzyConsoleTarget(); config.AddTarget("console", consoleTarget); consoleTarget.Layout = "[${logger:shortName=true}] ${message}"; // Get the logs resource if it exists and use it as the log dir try { if (RoleEnvironment.IsAvailable) { LocalResource logsResource = RoleEnvironment.GetLocalResource("Logs"); logDir = logsResource.RootPath; } } catch (Exception) { // Just use basedir. } // File Target FileTarget jobLogTarget = new FileTarget() { FileName = Path.Combine(logDir, "Jobs", "${logger:shortName=true}.${date:yyyy-MM-dd}.log.json"), }; ConfigureFileTarget(jobLogTarget); config.AddTarget("file", jobLogTarget); FileTarget hostTarget = new FileTarget() { FileName = Path.Combine(logDir, "Host", "Host.${date:yyyy-MM-dd}.log") }; ConfigureFileTarget(hostTarget); config.AddTarget("file", hostTarget); LoggingRule allMessagesToConsole = new LoggingRule("*", NLog.LogLevel.Trace, consoleTarget); config.LoggingRules.Add(allMessagesToConsole); // All other rules transfer all kinds of log messages EXCEPT Trace. LoggingRule hostToFile = new LoggingRule("JobRunner", NLog.LogLevel.Debug, hostTarget); config.LoggingRules.Add(hostToFile); LoggingRule roleToFile = new LoggingRule("WorkerRole", NLog.LogLevel.Debug, hostTarget); config.LoggingRules.Add(roleToFile); LoggingRule jobLogs = new LoggingRule("Job.*", NLog.LogLevel.Debug, jobLogTarget); config.LoggingRules.Add(jobLogs); LogManager.Configuration = config; _logger = LogManager.GetLogger("WorkerRole"); } catch (Exception ex) { File.WriteAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FatalError.txt"), ex.ToString()); } _logger.Info("Logging Enabled to {0}", logDir); try { if (RoleEnvironment.IsAvailable) { ConfigureAzureDiagnostics(logDir); } else { _logger.Info("Skipping Azure Diagnostics, we aren't in Azure"); } } catch (Exception ex) { _logger.InfoException("Skipping Azure Diagnostics, we got an exception trying to check if we are in Azure", ex); } try { _runner = LoadJobRunner(settings); } catch (Exception ex) { _logger.ErrorException("Error loading Job Runner", ex); } }
public static IEnumerable <string> GetJobList() { JobRunner runner = LoadJobRunner(new Settings()); return(runner.Jobs.Keys); }