Enable debug logging from single environment variable or static field.
This commit is contained in:
parent
073f0d86a1
commit
90070de028
|
@ -13,16 +13,21 @@ namespace Logging
|
||||||
|
|
||||||
public abstract class BaseLog : ILog
|
public abstract class BaseLog : ILog
|
||||||
{
|
{
|
||||||
|
public static bool EnableDebugLogging { get; set; } = false;
|
||||||
|
|
||||||
private readonly NumberSource subfileNumberSource = new NumberSource(0);
|
private readonly NumberSource subfileNumberSource = new NumberSource(0);
|
||||||
private readonly bool debug;
|
|
||||||
private readonly List<BaseLogStringReplacement> replacements = new List<BaseLogStringReplacement>();
|
private readonly List<BaseLogStringReplacement> replacements = new List<BaseLogStringReplacement>();
|
||||||
private LogFile? logFile;
|
private LogFile? logFile;
|
||||||
|
|
||||||
protected BaseLog(bool debug)
|
public BaseLog()
|
||||||
{
|
{
|
||||||
this.debug = debug;
|
IsDebug =
|
||||||
|
EnableDebugLogging ||
|
||||||
|
!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("LOGDEBUG")) ||
|
||||||
|
!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("DEBUGLOG"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool IsDebug { get; private set; }
|
||||||
protected abstract string GetFullName();
|
protected abstract string GetFullName();
|
||||||
|
|
||||||
public LogFile LogFile
|
public LogFile LogFile
|
||||||
|
@ -41,7 +46,7 @@ namespace Logging
|
||||||
|
|
||||||
public void Debug(string message = "", int skipFrames = 0)
|
public void Debug(string message = "", int skipFrames = 0)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (IsDebug)
|
||||||
{
|
{
|
||||||
var callerName = DebugStack.GetCallerName(skipFrames);
|
var callerName = DebugStack.GetCallerName(skipFrames);
|
||||||
Log($"(debug)({callerName}) {message}");
|
Log($"(debug)({callerName}) {message}");
|
||||||
|
@ -72,7 +77,7 @@ namespace Logging
|
||||||
|
|
||||||
private string ApplyReplacements(string str)
|
private string ApplyReplacements(string str)
|
||||||
{
|
{
|
||||||
if (debug) return str;
|
if (IsDebug) return str;
|
||||||
foreach (var replacement in replacements)
|
foreach (var replacement in replacements)
|
||||||
{
|
{
|
||||||
str = replacement.Apply(str);
|
str = replacement.Apply(str);
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
{
|
{
|
||||||
public class ConsoleLog : BaseLog
|
public class ConsoleLog : BaseLog
|
||||||
{
|
{
|
||||||
public ConsoleLog() : base(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetFullName()
|
protected override string GetFullName()
|
||||||
{
|
{
|
||||||
return "CONSOLE";
|
return "CONSOLE";
|
||||||
|
|
|
@ -2,13 +2,11 @@
|
||||||
{
|
{
|
||||||
public class LogConfig
|
public class LogConfig
|
||||||
{
|
{
|
||||||
public LogConfig(string logRoot, bool debugEnabled)
|
public LogConfig(string logRoot)
|
||||||
{
|
{
|
||||||
LogRoot = logRoot;
|
LogRoot = logRoot;
|
||||||
DebugEnabled = debugEnabled;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string LogRoot { get; }
|
public string LogRoot { get; }
|
||||||
public bool DebugEnabled { get; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
{
|
{
|
||||||
public class NullLog : BaseLog
|
public class NullLog : BaseLog
|
||||||
{
|
{
|
||||||
public NullLog() : base(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public string FullFilename { get; set; } = "NULL";
|
public string FullFilename { get; set; } = "NULL";
|
||||||
|
|
||||||
protected override string GetFullName()
|
protected override string GetFullName()
|
||||||
|
@ -15,11 +11,12 @@
|
||||||
|
|
||||||
public override void Log(string message)
|
public override void Log(string message)
|
||||||
{
|
{
|
||||||
|
if (IsDebug) base.Log(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Error(string message)
|
public override void Error(string message)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Error: " + message);
|
base.Error(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AddStringReplace(string from, string to)
|
public override void AddStringReplace(string from, string to)
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace CodexContractsPlugin
|
||||||
{
|
{
|
||||||
var config = startupConfig.Get<CodexContractsContainerConfig>();
|
var config = startupConfig.Get<CodexContractsContainerConfig>();
|
||||||
|
|
||||||
var address = config.GethNode.StartResult.Container.GetAddress(new ConsoleLog(), GethContainerRecipe.HttpPortTag);
|
var address = config.GethNode.StartResult.Container.GetAddress(new NullLog(), GethContainerRecipe.HttpPortTag);
|
||||||
|
|
||||||
AddEnvVar("DISTTEST_NETWORK_URL", address.ToString());
|
AddEnvVar("DISTTEST_NETWORK_URL", address.ToString());
|
||||||
AddEnvVar("HARDHAT_NETWORK", "codexdisttestnetwork");
|
AddEnvVar("HARDHAT_NETWORK", "codexdisttestnetwork");
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace ContinuousTests
|
||||||
|
|
||||||
public void Run()
|
public void Run()
|
||||||
{
|
{
|
||||||
var logConfig = new LogConfig(config.LogPath, false);
|
var logConfig = new LogConfig(config.LogPath);
|
||||||
var startTime = DateTime.UtcNow;
|
var startTime = DateTime.UtcNow;
|
||||||
|
|
||||||
var overviewLog = new LogSplitter(
|
var overviewLog = new LogSplitter(
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace ContinuousTests
|
||||||
this.handle = handle;
|
this.handle = handle;
|
||||||
this.cancelToken = cancelToken;
|
this.cancelToken = cancelToken;
|
||||||
testName = handle.Test.GetType().Name;
|
testName = handle.Test.GetType().Name;
|
||||||
fixtureLog = new FixtureLog(new LogConfig(config.LogPath, false), DateTime.UtcNow, testName);
|
fixtureLog = new FixtureLog(new LogConfig(config.LogPath), DateTime.UtcNow, testName);
|
||||||
entryPoint = entryPointFactory.CreateEntryPoint(config.KubeConfigFile, config.DataPath, config.CodexDeployment.Metadata.KubeNamespace, fixtureLog);
|
entryPoint = entryPointFactory.CreateEntryPoint(config.KubeConfigFile, config.DataPath, config.CodexDeployment.Metadata.KubeNamespace, fixtureLog);
|
||||||
ApplyLogReplacements(fixtureLog, startupChecker);
|
ApplyLogReplacements(fixtureLog, startupChecker);
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace ContinuousTests
|
||||||
|
|
||||||
public void Check()
|
public void Check()
|
||||||
{
|
{
|
||||||
var log = new FixtureLog(new LogConfig(config.LogPath, false), DateTime.UtcNow, "StartupChecks");
|
var log = new FixtureLog(new LogConfig(config.LogPath), DateTime.UtcNow, "StartupChecks");
|
||||||
log.Log("Starting continuous test run...");
|
log.Log("Starting continuous test run...");
|
||||||
IncludeDeploymentConfiguration(log);
|
IncludeDeploymentConfiguration(log);
|
||||||
log.Log("Checking configuration...");
|
log.Log("Checking configuration...");
|
||||||
|
|
|
@ -7,22 +7,19 @@ namespace DistTestCore
|
||||||
{
|
{
|
||||||
private readonly string? kubeConfigFile;
|
private readonly string? kubeConfigFile;
|
||||||
private readonly string logPath;
|
private readonly string logPath;
|
||||||
private readonly bool logDebug;
|
|
||||||
private readonly string dataFilesPath;
|
private readonly string dataFilesPath;
|
||||||
|
|
||||||
public Configuration()
|
public Configuration()
|
||||||
{
|
{
|
||||||
kubeConfigFile = GetNullableEnvVarOrDefault("KUBECONFIG", null);
|
kubeConfigFile = GetNullableEnvVarOrDefault("KUBECONFIG", null);
|
||||||
logPath = GetEnvVarOrDefault("LOGPATH", "CodexTestLogs");
|
logPath = GetEnvVarOrDefault("LOGPATH", "CodexTestLogs");
|
||||||
logDebug = GetEnvVarOrDefault("LOGDEBUG", "false").ToLowerInvariant() == "true";
|
|
||||||
dataFilesPath = GetEnvVarOrDefault("DATAFILEPATH", "TestDataFiles");
|
dataFilesPath = GetEnvVarOrDefault("DATAFILEPATH", "TestDataFiles");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Configuration(string? kubeConfigFile, string logPath, bool logDebug, string dataFilesPath)
|
public Configuration(string? kubeConfigFile, string logPath, string dataFilesPath)
|
||||||
{
|
{
|
||||||
this.kubeConfigFile = kubeConfigFile;
|
this.kubeConfigFile = kubeConfigFile;
|
||||||
this.logPath = logPath;
|
this.logPath = logPath;
|
||||||
this.logDebug = logDebug;
|
|
||||||
this.dataFilesPath = dataFilesPath;
|
this.dataFilesPath = dataFilesPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +45,7 @@ namespace DistTestCore
|
||||||
|
|
||||||
public Logging.LogConfig GetLogConfig()
|
public Logging.LogConfig GetLogConfig()
|
||||||
{
|
{
|
||||||
return new Logging.LogConfig(logPath, debugEnabled: logDebug);
|
return new Logging.LogConfig(logPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetFileManagerFolder()
|
public string GetFileManagerFolder()
|
||||||
|
|
|
@ -6,11 +6,6 @@ namespace DistTestCore.Logs
|
||||||
{
|
{
|
||||||
private bool hasFailed;
|
private bool hasFailed;
|
||||||
|
|
||||||
public BaseTestLog(bool debug)
|
|
||||||
: base(debug)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteLogTag()
|
public void WriteLogTag()
|
||||||
{
|
{
|
||||||
var runId = NameUtils.GetRunId();
|
var runId = NameUtils.GetRunId();
|
||||||
|
|
|
@ -5,18 +5,15 @@ namespace DistTestCore.Logs
|
||||||
public class FixtureLog : BaseTestLog
|
public class FixtureLog : BaseTestLog
|
||||||
{
|
{
|
||||||
private readonly string fullName;
|
private readonly string fullName;
|
||||||
private readonly LogConfig config;
|
|
||||||
|
|
||||||
public FixtureLog(LogConfig config, DateTime start, string name = "")
|
public FixtureLog(LogConfig config, DateTime start, string name = "")
|
||||||
: base(config.DebugEnabled)
|
|
||||||
{
|
{
|
||||||
fullName = NameUtils.GetFixtureFullName(config, start, name);
|
fullName = NameUtils.GetFixtureFullName(config, start, name);
|
||||||
this.config = config;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TestLog CreateTestLog(string name = "")
|
public TestLog CreateTestLog(string name = "")
|
||||||
{
|
{
|
||||||
return new TestLog(fullName, config.DebugEnabled, name);
|
return new TestLog(fullName, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteFolder()
|
public void DeleteFolder()
|
||||||
|
|
|
@ -5,8 +5,7 @@
|
||||||
private readonly string methodName;
|
private readonly string methodName;
|
||||||
private readonly string fullName;
|
private readonly string fullName;
|
||||||
|
|
||||||
public TestLog(string folder, bool debug, string name = "")
|
public TestLog(string folder, string name = "")
|
||||||
: base(debug)
|
|
||||||
{
|
{
|
||||||
methodName = NameUtils.GetTestMethodName(name);
|
methodName = NameUtils.GetTestMethodName(name);
|
||||||
fullName = Path.Combine(folder, methodName);
|
fullName = Path.Combine(folder, methodName);
|
||||||
|
|
Loading…
Reference in New Issue