Skip to content

Commit

Permalink
Ensure edge-agent and edge-hub use logger when logging exception stac… (
Browse files Browse the repository at this point in the history
#7233)

Cherry-picked: ce74e43
Ensure edge-agent and edge-hub use logger when logging exception stack traces.
  • Loading branch information
yophilav authored Mar 7, 2024
1 parent c38e0c8 commit 4ae6c29
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,27 +39,38 @@ public class Program
public static int Main()
{
Console.WriteLine($"{DateTime.UtcNow.ToLogString()} Edge Agent Main()");
ILogger logger = null;

try
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.AddJsonFile(ConfigFileName)
.AddEnvironmentVariables()
.Build();

return MainAsync(configuration).Result;
// Bring up the logger before anything else so we can log errors ASAP
logger = SetupLogger(configuration);

return MainAsync(configuration, logger).Result;
}
catch (Exception ex)
{
Console.Error.WriteLine(ex);
if (logger != null)
{
logger.LogDebug(ex, "An unhandled exception occurred");
}
else
{
// Fallback if the logger hasn't been set up, should pretty much never happen
Console.Error.WriteLine(ex);
}

return 1;
}
}

public static async Task<int> MainAsync(IConfiguration configuration)
public static async Task<int> MainAsync(IConfiguration configuration, ILogger logger)
{
// Bring up the logger before anything else so we can log errors ASAP
ILogger logger = SetupLogger(configuration);

logger.LogInformation("Initializing Edge Agent.");

VersionInfo versionInfo = VersionInfo.Get(VersionInfoFileName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,47 @@ public class Program

public static int Main()
{
Console.WriteLine($"{DateTime.UtcNow.ToLogString()} Edge Hub Main()");
IConfigurationRoot configuration = new ConfigurationBuilder()
.AddJsonFile(Constants.ConfigFileName)
.AddEnvironmentVariables()
.Build();
ILogger logger = null;

return MainAsync(configuration).Result;
}
try
{
Console.WriteLine($"{DateTime.UtcNow.ToLogString()} Edge Hub Main()");
IConfigurationRoot configuration = new ConfigurationBuilder()
.AddJsonFile(Constants.ConfigFileName)
.AddEnvironmentVariables()
.Build();

static async Task<int> MainAsync(IConfigurationRoot configuration)
{
string logLevel = configuration.GetValue($"{Logger.RuntimeLogLevelEnvKey}", "info");
Logger.SetLogLevel(logLevel);
string logLevel = configuration.GetValue($"{Logger.RuntimeLogLevelEnvKey}", "info");
Logger.SetLogLevel(logLevel);

// Set the LoggerFactory used by the Routing code.
if (configuration.GetValue("EnableRoutingLogging", false))
{
Routing.LoggerFactory = Logger.Factory;
// Set the LoggerFactory used by the Routing code.
if (configuration.GetValue("EnableRoutingLogging", false))
{
Routing.LoggerFactory = Logger.Factory;
}

logger = Logger.Factory.CreateLogger("EdgeHub");

return MainAsync(configuration, logger).Result;
}
catch (Exception ex)
{
if (logger != null)
{
logger.LogDebug(ex, "An unhandled exception occurred");
}
else
{
// Fallback if the logger hasn't been set up, should pretty much never happen
Console.Error.WriteLine(ex);
}

ILogger logger = Logger.Factory.CreateLogger("EdgeHub");
return 1;
}
}

static async Task<int> MainAsync(IConfigurationRoot configuration, ILogger logger)
{
try
{
EdgeHubCertificates certificates = await EdgeHubCertificates.LoadAsync(configuration, logger);
Expand Down Expand Up @@ -165,7 +184,7 @@ static async Task<int> MainAsync(IConfigurationRoot configuration)
catch (Exception ex)
{
logger.LogError(ex, "Stopping with exception");
throw;
return 1;
}

return 0;
Expand Down

0 comments on commit 4ae6c29

Please sign in to comment.