/// <summary> /// Creates the logger configuration. /// </summary> /// <param name="configurationRoot">The configuration root.</param> /// <param name="logFileName">Name of the log file.</param> /// <param name="loggerSettings">The logger settings.</param> /// <param name="includeLogEvent">The include log event.</param> /// <returns>LoggerConfiguration.</returns> /// <autogeneratedoc /> public static LoggerConfiguration CreateLoggerConfiguration( IConfigurationRoot configurationRoot, string logFileName, ISerilogLoggerSettings loggerSettings, Func <LogEvent, bool> includeLogEvent) { return(CreateLoggerConfiguration( configurationRoot?.GetSection(SectionApplicationInsights)?[InstrumentationKey], logFileName, loggerSettings, includeLogEvent)); }
/// <summary> /// Creates the x unit serilog factory. /// </summary> /// <param name="loggerSettings">The logger settings.</param> /// <param name="loggerConfiguration">The logger configuration.</param> /// <returns>IPureTestLoggerFactory.</returns> /// <exception cref="ArgumentNullException"> /// loggerSettings /// or /// loggerConfiguration /// </exception> /// <autogeneratedoc /> public static IPureTestLoggerFactory CreateXUnitSerilogFactory(ISerilogLoggerSettings loggerSettings, LoggerConfiguration loggerConfiguration) { if (loggerSettings == null) { throw new ArgumentNullException(nameof(loggerSettings)); } if (loggerConfiguration == null) { throw new ArgumentNullException(nameof(loggerConfiguration)); } var loggerFactory = LoggerConfigurationFactory.CreateSerilogFactory(loggerSettings, loggerConfiguration); // loggerFactory.AddDebug(); return(new PureTestLoggerFactory(loggerFactory, loggerSettings)); }
/// <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); }
/// <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 default logger configuration. /// </summary> /// <param name="loggerSettings">The logger settings.</param> /// <returns>LoggerConfiguration.</returns> /// <autogeneratedoc /> public static LoggerConfiguration CreateDefaultLoggerConfiguration(ISerilogLoggerSettings loggerSettings) { var loggerConfiguration = new LoggerConfiguration() .ReadFrom.Configuration(loggerSettings.Configuration) .MinimumLevel.ControlledBy(loggerSettings .GetOrRegisterSerilogLogDefaultLevel(LoggingOutputFlags.Default).LoggingLevelSwitch) .Enrich.FromLogContext() .Enrich.With(new AsyncFriendlyStackTraceEnricher()); if (loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.Console)) { loggerConfiguration.WriteTo.Console(levelSwitch: loggerSettings .GetOrRegisterSerilogLogDefaultLevel(LoggingOutputFlags.Console) .LoggingLevelSwitch); // Always write to the console } return(loggerConfiguration); }
/// <summary> /// Creates the serilog factory. /// </summary> /// <param name="loggerSettings">The logger settings.</param> /// <param name="loggerConfiguration">The logger configuration.</param> /// <param name="useStaticLogger">if set to <c>true</c> [use static logger].</param> /// <returns>ILoggerFactory.</returns> /// <autogeneratedoc /> public static ILoggerFactory CreateSerilogFactory(ISerilogLoggerSettings loggerSettings, LoggerConfiguration loggerConfiguration = null, bool useStaticLogger = true) { if (loggerSettings == null) { throw new ArgumentNullException(nameof(loggerSettings)); } if (loggerConfiguration == null) { loggerConfiguration = CreateDefaultLoggerConfiguration(loggerSettings); } // Set var logger = loggerConfiguration?.CreateLogger(); if (useStaticLogger) { Log.Logger = logger; } return(new SerilogLoggerFactory(logger, useStaticLogger)); }
public static LoggerConfiguration CreateLoggerConfiguration( string appInsightsKey, string logFileName, ISerilogLoggerSettings loggerSettings, Func <LogEvent, bool> includeLogEvent) { var loggerConfiguration = CreateDefaultLoggerConfiguration(loggerSettings); if (loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.RollingFile)) { // Write to disk if requested var rollingFilePath = loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.Testing) ? loggerSettings.TestLogFolderPath + logFileName : loggerSettings.LogFolderPath + logFileName; loggerConfiguration.WriteTo.RollingFile(rollingFilePath, levelSwitch: loggerSettings.GetOrRegisterSerilogLogDefaultLevel(LoggingOutputFlags.RollingFile) .LoggingLevelSwitch); } if (appInsightsKey != null && loggerSettings.LoggingOutputFlags.HasFlag(LoggingOutputFlags.AppInsights)) { // Write to application insights if requested loggerConfiguration.WriteTo.ApplicationInsightsTraces ( appInsightsKey, loggerSettings .GetOrRegisterSerilogLogLevel(LoggingOutputFlags.AppInsights, LogEventLevel.Information) .MinimumLogEventLevel, null /*formatProvider*/, (logEvent, formatProvider) => ConvertLogEventsToCustomTraceTelemetry(logEvent, formatProvider, includeLogEvent) ); } return(loggerConfiguration); }
/// <summary> /// Initializes a new instance of the <see cref="PureTestLoggerFactory"/> class. /// </summary> /// <param name="loggerFactory">The logger factory.</param> /// <param name="loggerSettings">The logger settings.</param> /// <autogeneratedoc /> public PureTestLoggerFactory(ILoggerFactory loggerFactory, ISerilogLoggerSettings loggerSettings) : base(loggerFactory, loggerSettings) { }
/// <summary> /// Initializes a new instance of the <see cref="PureSeriLoggerFactory"/> class. /// </summary> /// <param name="loggerFactory">The logger factory.</param> /// <param name="loggerSettings">The logger settings.</param> /// <exception cref="ArgumentNullException"> /// loggerFactory /// or /// loggerSettings /// </exception> /// <autogeneratedoc /> public PureSeriLoggerFactory(ILoggerFactory loggerFactory, ISerilogLoggerSettings loggerSettings) { WrappedLoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); SerilogLoggerSettings = loggerSettings ?? throw new ArgumentNullException(nameof(loggerSettings)); }
/// <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 pure seri logger factory. /// </summary> /// <param name="loggerSettings">The logger settings.</param> /// <param name="loggerConfiguration">The logger configuration.</param> /// <param name="useStaticLogger">if set to <c>true</c> [use static logger].</param> /// <returns>IPureLoggerFactory.</returns> /// <autogeneratedoc /> public static IPureLoggerFactory CreatePureSeriLoggerFactory(ISerilogLoggerSettings loggerSettings, LoggerConfiguration loggerConfiguration = null, bool useStaticLogger = true) { return(new PureSeriLoggerFactory(CreateSerilogFactory(loggerSettings, loggerConfiguration, useStaticLogger), loggerSettings)); }