/// <summary> /// Initializes a new instance of the <see cref="TestBaseLoggable{T}"/> class. /// </summary> /// <param name="appFolderName">Name of the application folder.</param> /// <param name="testOutputHelper">The test output helper.</param> /// <param name="initialMinimumLevel">The initial minimum level.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <autogeneratedoc /> protected TestBaseLoggable(string appFolderName, ITestOutputHelper testOutputHelper, LogLevel initialMinimumLevel = LogLevel.Debug, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) : this(new FileSystem(appFolderName), testOutputHelper, initialMinimumLevel, xUnitSerilogFormatter) { }
/// <summary> /// Initializes a new instance of the <see cref="TestBaseLoggable{T}"/> class. /// </summary> /// <param name="operatingSystem">The operating system.</param> /// <param name="testOutputHelper">The test output helper.</param> /// <param name="initialMinimumLevel">The initial minimum level.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <autogeneratedoc /> protected TestBaseLoggable(IOperatingSystem operatingSystem, ITestOutputHelper testOutputHelper, LogLevel initialMinimumLevel = LogLevel.Debug, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) : this(new FileSystem(typeof(T), operatingSystem), testOutputHelper, initialMinimumLevel, xUnitSerilogFormatter) { }
/// <summary> /// Initializes a new instance of the <see cref="TestBaseLoggable{T}"/> class. /// </summary> /// <param name="fileSystem">The file system.</param> /// <param name="testOutputHelper">The test output helper.</param> /// <param name="initialMinimumLevel">The initial minimum level.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <autogeneratedoc /> protected TestBaseLoggable(IFileSystem fileSystem, ITestOutputHelper testOutputHelper, LogLevel initialMinimumLevel = LogLevel.Debug, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) { FileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem)); TestOutputHelper = testOutputHelper; LoggerSettings = new SerilogLoggerSettings(fileSystem, initialMinimumLevel, LoggingOutputFlags.Testing); var loggerConfiguration = XunitLoggingSink.CreateXUnitLoggerConfiguration(testOutputHelper, LoggerSettings, xUnitSerilogFormatter); TestLoggerFactory = XunitLoggingSink.CreateXUnitSerilogFactory(LoggerSettings, loggerConfiguration); Logger = TestLoggerFactory?.CreatePureLogger <T>(); }
/// <summary> /// Creates the pure logger. /// </summary> /// <param name="logEventLevel">The log event level.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <returns>IPureLogger.</returns> /// <autogeneratedoc /> private IPureLogger CreatePureLogger(LogEventLevel logEventLevel, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) { var fileSystem = new FileSystem(typeof(XunitSinkUnitTests)); var loggerSettings = new SerilogLoggerSettings(fileSystem, logEventLevel, LoggingOutputFlags.Testing); var loggerConfiguration = XunitLoggingSink.CreateXUnitLoggerConfiguration(_testOutputHelper, loggerSettings, xUnitSerilogFormatter); var loggerFactory = XunitLoggingSink.CreateXUnitSerilogFactory(loggerSettings, loggerConfiguration); var logger = loggerFactory.CreatePureLogger <XunitSinkUnitTests>(); logger.Should().NotBeNull("CreatePureLogger should always succeed"); return(logger); }
/// <summary> /// Gets the x unit serilog formatter. /// </summary> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <returns>ITextFormatter.</returns> /// <autogeneratedoc /> public static ITextFormatter GetXUnitSerilogFormatter(XUnitSerilogFormatter xUnitSerilogFormatter) { switch (xUnitSerilogFormatter) { case XUnitSerilogFormatter.JsonFormatter: return(new JsonFormatter()); case XUnitSerilogFormatter.CompactJsonFormatter: return(new CompactJsonFormatter()); case XUnitSerilogFormatter.RenderedJsonFormatter: return(new JsonFormatter(null, true)); case XUnitSerilogFormatter.RenderedCompactJsonFormatter: return(new RenderedCompactJsonFormatter()); default: return(null); } }
/// <summary> /// Creates the x unit serilog factory. /// </summary> /// <param name="testOutputHelper">The test output helper.</param> /// <param name="loggerSettings">The logger settings.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <returns>IPureTestLoggerFactory.</returns> /// <exception cref="ArgumentNullException"> /// testOutputHelper /// or /// loggerSettings /// </exception> /// <autogeneratedoc /> public static IPureTestLoggerFactory CreateXUnitSerilogFactory(ITestOutputHelper testOutputHelper, ISerilogLoggerSettings loggerSettings, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.None) { if (testOutputHelper == null) { throw new ArgumentNullException(nameof(testOutputHelper)); } if (loggerSettings == null) { throw new ArgumentNullException(nameof(loggerSettings)); } var loggerConfiguration = CreateXUnitLoggerConfiguration(testOutputHelper, loggerSettings, xUnitSerilogFormatter); return(CreateXUnitSerilogFactory(loggerSettings, loggerConfiguration)); }
/// <summary> /// Creates the x unit logger configuration. /// </summary> /// <param name="testOutputHelper">The test output helper.</param> /// <param name="loggerSettings">The logger settings.</param> /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param> /// <returns>LoggerConfiguration.</returns> /// <exception cref="ArgumentNullException"> /// testOutputHelper /// or /// loggerSettings /// </exception> /// <autogeneratedoc /> public static LoggerConfiguration CreateXUnitLoggerConfiguration(ITestOutputHelper testOutputHelper, ISerilogLoggerSettings loggerSettings, XUnitSerilogFormatter xUnitSerilogFormatter) { if (testOutputHelper == null) { throw new ArgumentNullException(nameof(testOutputHelper)); } if (loggerSettings == null) { throw new ArgumentNullException(nameof(loggerSettings)); } var loggerConfiguration = LoggerConfigurationFactory.CreateDefaultLoggerConfiguration(loggerSettings); if (loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.XUnitConsole)) { var jsonFormatter = GetXUnitSerilogFormatter(xUnitSerilogFormatter); var testConsoleLoggerSetting = loggerSettings.GetOrRegisterSerilogLogDefaultLevel(LoggingOutputFlags.XUnitConsole); if (jsonFormatter != null) { loggerConfiguration.WriteTo.XUnit(testOutputHelper, jsonFormatter, testConsoleLoggerSetting.MinimumLogEventLevel, testConsoleLoggerSetting.LoggingLevelSwitch); } else { loggerConfiguration.WriteTo.XUnit(testOutputHelper, testConsoleLoggerSetting.MinimumLogEventLevel, XUnitLoggerConfigurationExtensions.DefaultOutputTemplate, null, testConsoleLoggerSetting.LoggingLevelSwitch); } } if (loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.TestCorrelator)) { var testCorrelatorLoggerSetting = loggerSettings.GetOrRegisterSerilogLogDefaultLevel(LoggingOutputFlags.TestCorrelator); // Configuration switch to TestCorrelator loggerConfiguration.WriteTo.TestCorrelator(testCorrelatorLoggerSetting.MinimumLogEventLevel, testCorrelatorLoggerSetting.LoggingLevelSwitch); } return(loggerConfiguration); }
public void XunitSink_Create_Formatter(XUnitSerilogFormatter xUnitSerilogFormatter) { var logger = CreatePureLogger(LogEventLevel.Debug, xUnitSerilogFormatter); logger.LogDebug("Create_XUnit_Sink_{xUnitSerilogFormatter}", xUnitSerilogFormatter); }
/// <inheritdoc /> public TestBaseLoggableTest(ITestOutputHelper testOutputHelper, LogLevel initialMinimumLevel = LogLevel.Debug, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) : base(testOutputHelper, initialMinimumLevel, xUnitSerilogFormatter) { }
/// <inheritdoc /> public TestBaseLoggableTest(string appFolderName, IOperatingSystem operatingSystem, ITestOutputHelper testOutputHelper, LogLevel initialMinimumLevel = LogLevel.Debug, XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter) : base(appFolderName, operatingSystem, testOutputHelper, initialMinimumLevel, xUnitSerilogFormatter) { }