Ejemplo n.º 1
0
 /// <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));
 }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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>();
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 /// <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)
 {
 }
Ejemplo n.º 9
0
 /// <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));
 }
Ejemplo n.º 10
0
        /// <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));
        }
Ejemplo n.º 11
0
 /// <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));
 }