Use Logger overloads (#2163)

This commit is contained in:
Charles Gagnon
2023-08-02 13:25:21 -07:00
committed by GitHub
parent dc91e1ecf0
commit 969ac0ed8c
114 changed files with 438 additions and 530 deletions

View File

@@ -113,7 +113,6 @@ GO";
TestLogger test = new TestLogger()
{
TraceSource = System.Reflection.MethodInfo.GetCurrentMethod().Name,
EventType = System.Diagnostics.TraceEventType.Information,
TracingLevel = System.Diagnostics.SourceLevels.All,
};

View File

@@ -28,7 +28,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
public string TraceSource { get; set; } = "sqltoolsTest";
public string LogMessage { get => logMessage ?? $"{TestName} test message"; set => logMessage = value; }
public string LogFilePath { get => logFilePath ?? Logger.GenerateLogFilePath(Path.Combine(Directory.GetCurrentDirectory(), TraceSource)); set => logFilePath = value; }
public TraceEventType EventType { get; set; } = TraceEventType.Information;
public SourceLevels TracingLevel { get; set; } = SourceLevels.Critical;
public bool DoNotUseTraceSource { get; set; } = false;
@@ -75,36 +74,66 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
set => pendingVerifications = value;
}
public void Write() => Write(LogMessage);
public void Write() => Write(TraceEventType.Information, LogMessage);
public void Write(string logMessage)
public void Information() => Information(LogMessage);
public void Information(string logMessage) => Write(TraceEventType.Information, logMessage);
public void Warning(string logMessage) => Write(TraceEventType.Warning, logMessage);
public void Warning() => Warning(LogMessage);
public void Error(string logMessage) => Write(TraceEventType.Error, logMessage);
public void Error() => Error(LogMessage);
private void Write(TraceEventType traceEventType, string logMessage)
{
// write test log
if (DoNotUseTraceSource)
{
TraceSource savedTraceSource = Logger.TraceSource;
Logger.TraceSource = null;
Logger.Write(EventType, logMessage);
WriteInternal(traceEventType, logMessage);
Logger.TraceSource = savedTraceSource;
}
else
{
Logger.Write(EventType, logMessage);
WriteInternal(traceEventType, logMessage);
}
}
public void WriteWithCallstack() => WriteWithCallstack(LogMessage);
private void WriteInternal(TraceEventType traceEventType, string logMessage)
{
switch (traceEventType)
{
case TraceEventType.Information:
Logger.Information(logMessage);
break;
case TraceEventType.Warning:
Logger.Warning(logMessage);
break;
case TraceEventType.Error:
Logger.Error(logMessage);
break;
default:
throw new Exception($"Unsupported event type {traceEventType}");
}
}
public void WriteWithCallstack(string logMessage)
public void WriteWithCallstack() => WriteWithCallstack(TraceEventType.Information, LogMessage);
public void WriteWithCallstack(TraceEventType traceEventType, string logMessage)
{
// write test log with callstack
Logger.WriteWithCallstack(EventType, logMessage);
Logger.WriteWithCallstack(traceEventType, logMessage);
ShouldVerifyCallstack = true;
}
public void Verify(bool expectLogMessage = true) => Verify(ShouldVerifyCallstack, expectLogMessage);
public void Verify(bool expectLogMessage = true) => Verify(ShouldVerifyCallstack, expectLogMessage: expectLogMessage);
public void Verify(bool shouldVerifyCallstack, bool expectLogMessage = true) => Verify(EventType, LogMessage, CallstackMessage, shouldVerifyCallstack, expectLogMessage);
public void Verify(bool shouldVerifyCallstack, TraceEventType traceEventType = TraceEventType.Information, bool expectLogMessage = true) => Verify(traceEventType, LogMessage, CallstackMessage, shouldVerifyCallstack, expectLogMessage);
public void Verify(TraceEventType eventType, string message, string callstackMessage, bool shouldVerifyCallstack = false, bool expectLogMessage = true)
{

View File

@@ -30,7 +30,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Information,
TracingLevel = SourceLevels.Verbose,
};
@@ -181,7 +180,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Information,
TracingLevel = SourceLevels.Off,
};
@@ -203,7 +201,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Information,
TracingLevel = SourceLevels.Critical,
};
@@ -222,7 +219,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Warning,
TracingLevel = SourceLevels.Information,
};
@@ -241,7 +237,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Information,
TracingLevel = SourceLevels.Error,
};
@@ -260,7 +255,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Warning,
TracingLevel = SourceLevels.Information,
DoNotUseTraceSource = true,
};
@@ -280,7 +274,6 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
TestLogger test = new TestLogger()
{
TraceSource = MethodInfo.GetCurrentMethod().Name,
EventType = TraceEventType.Information,
TracingLevel = SourceLevels.Error,
DoNotUseTraceSource = true,
};
@@ -355,7 +348,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
};
test.Initialize();
// Write 10000 lines of log
Parallel.For(0, 100, (i) => test.Write($"Message Number:{i}, Message:{test.LogMessage}"));
Parallel.For(0, 100, (i) => test.Information($"Message Number:{i}, Message:{test.LogMessage}"));
long logContentsSizeBeforeExplicitFlush = (new FileInfo(test.LogFileName)).Length;
// Please note that Logger.Close() first flushes the logs before closing them out.
Logger.Flush();
@@ -389,8 +382,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
// Initially with TracingLevel at Warning, logging of Warning type does not get filtered out.
Assert.AreEqual(SourceLevels.Warning, Logger.TracingLevel);
{
test.EventType = TraceEventType.Warning;
test.Write();
test.Warning();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Warning, message: oldMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);
@@ -398,8 +390,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
}
// and logging of Error type also succeeeds
{
test.EventType = TraceEventType.Error;
test.Write();
test.Error();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Error, message: oldMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);
@@ -414,8 +405,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
// Now with TracingLevel at Error, logging of Warning type gets filtered out.
{
test.EventType = TraceEventType.Warning;
test.Write();
test.Warning();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Warning, message: newMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: false);
@@ -423,8 +413,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
}
// but logging of Error type succeeds
{
test.EventType = TraceEventType.Error;
test.Write();
test.Error();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Error, message: newMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);
@@ -444,8 +433,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
// Initially with TracingLevel at Error, logging of Warning type gets filtered out.
Assert.AreEqual(SourceLevels.Error, Logger.TracingLevel);
{
test.EventType = TraceEventType.Warning;
test.Write();
test.Warning();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Warning, message: oldMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: false);
@@ -453,8 +441,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
}
// But logging of Error type succeeeds
{
test.EventType = TraceEventType.Error;
test.Write();
test.Error();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Error, message: oldMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);
@@ -469,8 +456,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
// Now with TracingLevel at Warning, logging of Warning type does not get filtered out.
{
test.EventType = TraceEventType.Warning;
test.Write();
test.Warning();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Warning, message: newMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);
@@ -478,8 +464,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
}
// and logging of Error type also succeeds
{
test.EventType = TraceEventType.Error;
test.Write();
test.Error();
test.PendingVerifications.Add(() =>
{
test.Verify(eventType: TraceEventType.Error, message: newMessage, callstackMessage: null, shouldVerifyCallstack: false, expectLogMessage: true);