private static void LogAndReturnError(HttpContext context, string logMessage, string userMessage, string sourceFilePath, HttpStatusCode statusCode, EventType logEventType) { string loggerName = !string.IsNullOrEmpty(sourceFilePath) ? nameof(LightDMS) + "." + Path.GetFileNameWithoutExtension(sourceFilePath) : nameof(LightDMS); var logger = new NLogProvider().GetLogger(loggerName); logger.Write(logEventType, logMessage); if (!logMessage.Contains(DownloadHelper.ResponseBlockedMessage)) { context.Response.Clear(); try { context.Response.ContentType = "application/json;"; context.Response.StatusCode = (int)statusCode; } catch (HttpException ex) when(ex.Message.StartsWith("Server cannot set content type after HTTP headers have been sent.")) { logger.Error(ex.ToString()); } context.Response.Write(JsonConvert.SerializeObject(new { error = userMessage })); } }
public void LoggerName() { NLogProvider logProvider = new NLogProvider(); string loggerName = $"Space Dot.{Guid.NewGuid().ToString()}"; Console.WriteLine(loggerName); var logger = logProvider.GetLogger(loggerName); Assert.AreEqual(loggerName, logger.Name); }
public void GetLoggerTest_Performance() { NLogProvider logProvider = new NLogProvider(); for (int i = 0; i < 100 * 1000; i++) { var logger = logProvider.GetLogger("abc"); Assert.IsNotNull(logger); } }
public DownloadHelper() { var logProvider = new NLogProvider(); _logger = logProvider.GetLogger(GetType().Name); var configuration = new Rhetos.Utilities.Configuration(); _detectResponseBlockingErrors = configuration.GetBool("LightDMS.DetectResponseBlockingErrors", true).Value; _detectResponseBlockingErrorsTimeoutMs = configuration.GetInt("LightDMS.DetectResponseBlockingErrorsTimeoutMs", 60 * 1000).Value; }
private static void Build(string[] args, NLogProvider logProvider, string rhetosAppRootPath, out bool pauseOnError) { var logger = logProvider.GetLogger("DeployPackages"); var configurationBuilder = new ConfigurationBuilder(logProvider) .AddOptions(new RhetosBuildEnvironment { ProjectFolder = rhetosAppRootPath, OutputAssemblyName = null, CacheFolder = Path.Combine(rhetosAppRootPath, "GeneratedFilesCache"), GeneratedAssetsFolder = Path.Combine(rhetosAppRootPath, "bin", "Generated"), GeneratedSourceFolder = null, }) .AddOptions(new LegacyPathsOptions { BinFolder = Path.Combine(rhetosAppRootPath, "bin"), PluginsFolder = Path.Combine(rhetosAppRootPath, "bin", "Plugins"), ResourcesFolder = Path.Combine(rhetosAppRootPath, "Resources"), }) .AddKeyValue(ConfigurationProvider.GetKey((BuildOptions o) => o.GenerateAppSettings), false) .AddKeyValue(ConfigurationProvider.GetKey((BuildOptions o) => o.BuildResourcesFolder), true) .AddWebConfiguration(rhetosAppRootPath) .AddKeyValue(ConfigurationProvider.GetKey((ConfigurationProviderOptions o) => o.LegacyKeysWarning), true) .AddKeyValue(ConfigurationProvider.GetKey((LoggingOptions o) => o.DelayedLogTimout), 60.0) .AddConfigurationManagerConfiguration() .AddCommandLineArgumentsWithConfigurationPaths(args); var configuration = configurationBuilder.Build(); var deployPackagesOptions = configuration.GetOptions <DeployPackagesOptions>(); pauseOnError = !deployPackagesOptions.NoPause; if (deployPackagesOptions.StartPaused) { StartPaused(); } if (!deployPackagesOptions.DatabaseOnly) { LegacyUtilities.Initialize(configuration); DeleteObsoleteFiles(rhetosAppRootPath, logProvider, logger); var installedPackages = DownloadPackages(deployPackagesOptions.IgnoreDependencies, logProvider, logger); var pluginAssemblies = Directory.GetFiles(Path.Combine(rhetosAppRootPath, "bin", "Plugins"), "*.dll", SearchOption.TopDirectoryOnly); var build = new ApplicationBuild(configuration, logProvider, pluginAssemblies, installedPackages); build.GenerateApplication(); } else { logger.Info("Skipped deleting old generated files (DeployDatabaseOnly)."); logger.Info("Skipped download packages (DeployDatabaseOnly)."); logger.Info("Skipped code generators (DeployDatabaseOnly)."); } }
public static int Main(string[] args) { try { return(Run(args)); } finally { NLogProvider.FlushAndShutdown(); } }
private static void DbUpdate(string[] args, NLogProvider logProvider) { var host = Host.Find(AppDomain.CurrentDomain.BaseDirectory, logProvider); var configuration = host.RhetosRuntime .BuildConfiguration(logProvider, host.ConfigurationFolder, configurationBuilder => configurationBuilder .AddKeyValue(ConfigurationProvider.GetKey((ConfigurationProviderOptions o) => o.LegacyKeysWarning), true) .AddKeyValue(ConfigurationProvider.GetKey((LoggingOptions o) => o.DelayedLogTimout), 60.0) .AddConfigurationManagerConfiguration() .AddCommandLineArgumentsWithConfigurationPaths(args)); var deployment = new ApplicationDeployment(configuration, logProvider); deployment.UpdateDatabase(); deployment.InitializeGeneratedApplication(host.RhetosRuntime); deployment.RestartWebServer(host.ConfigurationFolder); }
private static void ConfigureApplication() { var stopwatch = Stopwatch.StartNew(); var logProvider = new NLogProvider(); var rhetosRuntime = new RhetosRuntime(true); var configuration = rhetosRuntime.BuildConfiguration(logProvider, AppDomain.CurrentDomain.BaseDirectory, null); AutofacServiceHostFactory.Container = rhetosRuntime.BuildContainer(logProvider, configuration, null); _logger = logProvider.GetLogger("Global"); _logger.Trace("Startup"); _webServices = AutofacServiceHostFactory.Container.Resolve <WebServices>(); var _performanceLogger = logProvider.GetLogger("Performance." + nameof(Global)); _performanceLogger.Write(stopwatch, "Application configured."); }
static void Main(string[] args) { var logger = new NLogProvider(); var rabbitMq = ConfigurationManager.AppSettings["RabbitMqConnectionString"]; using (var bus = new RabbitMqProvider(rabbitMq, logger)) { var webApiAddress = ConfigurationManager.AppSettings["WebApiEndpointAddress"]; using (var sender = new HttpClientProvider(webApiAddress, logger)) { var fibonacciService = new FibonacciService(sender, logger); bus.Subscribe <CalculationDTO>("fibonacciQueue", fibonacciService.Handle); Console.WriteLine("Press any key to stop"); Console.ReadLine(); } } }
public static int Main(string[] args) { var logProvider = new NLogProvider(); var logger = logProvider.GetLogger("DeployPackages"); var pauseOnError = false; logger.Info(() => "Logging configured."); try { if (!DeployPackagesArguments.ValidateArguments(args)) { return(1); } string rhetosAppRootPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..")); Build(args, logProvider, rhetosAppRootPath, out pauseOnError); DbUpdate(args, logProvider); logger.Info("Done."); } catch (Exception e) { logger.Error(e.ToString()); string typeLoadReport = CsUtility.ReportTypeLoadException(e); if (typeLoadReport != null) { logger.Error(typeLoadReport); } if (Environment.UserInteractive) { InteractiveExceptionInfo(e, pauseOnError); } return(1); } return(0); }
/// <summary> /// 初始化Exceptionless日志提供程序 /// </summary> /// <param name="logName">日志名称</param> public ExceptionlessProvider(string logName) { _logger = NLogProvider.GetLogger(logName); _client = ExceptionlessClient.Default; }
public DownloadHandler() { var logProvider = new NLogProvider(); _performanceLogger = logProvider.GetLogger("Performance.LightDMS"); }
public void GetLoggerTest_ThreadSafe() { NLogProvider logProvider = new NLogProvider(); Parallel.For(1, 20, x => Assert.IsNotNull(logProvider.GetLogger("abc"))); }
private static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { logger.Fatal((Exception)e.ExceptionObject, "Unhandled exception."); NLogProvider.Flush(); }
public Program() { LogProvider = new NLogProvider(); Logger = LogProvider.GetLogger("Rhetos"); }