public static int Main(string[] args) { // This test creates and unloads an appdomain // It seems that in some (unknown) conditions the tracer gets loader into the child appdomain // When that happens, there is a risk that the startup log thread gets aborted during appdomain unload, // adding error logs which in turn cause a failure in CI. // Disabling the startup log at the process level should prevent this. Environment.SetEnvironmentVariable("DD_TRACE_STARTUP_LOGS", "0"); LoggingMethods.DeleteExistingLogs(); // Initialize Serilog var appDirectory = Directory.GetParent(typeof(Program).Assembly.Location).FullName; var textFilePath = Path.Combine(appDirectory, "log-textFile.log"); var jsonFilePath = Path.Combine(appDirectory, "log-jsonFile.log"); var log = new LoggerConfiguration() .Enrich.FromLogContext() .MinimumLevel.Is(LogEventLevel.Information) .WriteTo.File( textFilePath, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {{ dd_service: \"{dd_service}\", dd_version: \"{dd_version}\", dd_env: \"{dd_env}\", dd_trace_id: \"{dd_trace_id}\", dd_span_id: \"{dd_span_id}\" }} {Message:lj} {NewLine}{Exception}") #if SERILOG_2_0 .WriteTo.File( new JsonFormatter(), jsonFilePath) #endif .CreateLogger(); return(LoggingMethods.RunLoggingProcedure(LogWrapper(log))); }
public static int Main(string[] args) { // This test creates and unloads an appdomain // It seems that in some (unknown) conditions the tracer gets loader into the child appdomain // When that happens, there is a risk that the startup log thread gets aborted during appdomain unload, // adding error logs which in turn cause a failure in CI. // Disabling the startup log at the process level should prevent this. Environment.SetEnvironmentVariable("DD_TRACE_STARTUP_LOGS", "0"); LoggingMethods.DeleteExistingLogs(); // Initialize log4net var logRepository = LogManager.GetRepository(typeof(Program).Assembly); var appDirectory = Directory.GetParent(typeof(Program).Assembly.Location).FullName; #if NETFRAMEWORK && LOG4NET_2_0_5 XmlConfigurator.Configure(logRepository, new FileInfo(Path.Combine(appDirectory, "log4net.205.config"))); #else // Regardless of package version, for .NET Core just assert against raw log lines XmlConfigurator.Configure(logRepository, new FileInfo(Path.Combine(appDirectory, "log4net.Pre205.config"))); #endif return(LoggingMethods.RunLoggingProcedure(log.Info)); }
public static int Main(string[] args) { // This test creates and unloads an appdomain // It seems that in some (unknown) conditions the tracer gets loader into the child appdomain // When that happens, there is a risk that the startup log thread gets aborted during appdomain unload, // adding error logs which in turn cause a failure in CI. // Disabling the startup log at the process level should prevent this. Environment.SetEnvironmentVariable("DD_TRACE_STARTUP_LOGS", "0"); var env = SampleHelpers.GetDatadogEnvironmentVariables(); foreach (var kvp in env) { Console.WriteLine($"{kvp.Key}: {kvp.Value}"); } bool isAttached = SampleHelpers.IsProfilerAttached(); Console.WriteLine(" * Checking if the profiler is attached: {0}", isAttached); LoggingMethods.DeleteExistingLogs(); // Initialize NLog var appDirectory = Directory.GetParent(typeof(Program).Assembly.Location).FullName; #if NLOG_4_6 LogManager.Configuration = new XmlLoggingConfiguration(Path.Combine(appDirectory, "NLog.46.config")); Console.WriteLine("Using NLOG_4_6 configuration"); global::NLog.LogManager.ThrowExceptions = true; global::NLog.Common.InternalLogger.LogToConsole = true; global::NLog.Common.InternalLogger.LogLevel = LogLevel.Debug; #elif NLOG_4_0 LogManager.Configuration = new XmlLoggingConfiguration(Path.Combine(appDirectory, "NLog.40.config")); Console.WriteLine("Using NLOG_4_0 configuration"); global::NLog.LogManager.ThrowExceptions = true; global::NLog.Common.InternalLogger.LogToConsole = true; global::NLog.Common.InternalLogger.LogLevel = LogLevel.Debug; #else LogManager.Configuration = new XmlLoggingConfiguration(Path.Combine(appDirectory, "NLog.Pre40.config")); Console.WriteLine("Using pre NLOG_4_0 configuration"); #endif #if NETCOREAPP // Hacks for the fact the NLog on Linux just can't do anything right if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { var target = (FileTarget)LogManager.Configuration.FindTargetByName("textFile"); if (target is not null) { target.FileName = Path.Combine(appDirectory, "log-textFile.log"); } target = (FileTarget)LogManager.Configuration.FindTargetByName("jsonFile"); if (target is not null) { target.FileName = Path.Combine(appDirectory, "log-jsonFile.log"); } LogManager.ReconfigExistingLoggers(); } #endif Logger Logger = LogManager.GetCurrentClassLogger(); return(LoggingMethods.RunLoggingProcedure(Logger.Info)); }