diff --git a/sandbox/Benchmark/Benchmarks/PostLogEntry.cs b/sandbox/Benchmark/Benchmarks/PostLogEntry.cs index 5e717eea..557d6282 100644 --- a/sandbox/Benchmark/Benchmarks/PostLogEntry.cs +++ b/sandbox/Benchmark/Benchmarks/PostLogEntry.cs @@ -2,21 +2,18 @@ using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; -using System.Threading; using System.Threading.Channels; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Configs; using BenchmarkDotNet.Diagnosers; using BenchmarkDotNet.Jobs; -using log4net.Repository.Hierarchy; using Microsoft.Extensions.Logging; using NLog; using NLog.Extensions.Logging; using NLog.Targets.Wrappers; using Serilog; using ZLogger; -using ZLogger.Formatters; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace Benchmark.Benchmarks; @@ -106,16 +103,9 @@ public void SetUp() var zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(builder => + logging.AddZLoggerStream(Stream.Null, options => { - //builder.AddLogProcessor(new NullProcessor()); - - //builder.AddStream(Stream.Null); - - builder.AddStream(Stream.Null, options => - { - options.UsePlainTextFormatter(formatter => formatter.SetPrefixFormatter($"{0} [{1}]", (template, info) => template.Format(info.Timestamp, info.LogLevel))); - }); + options.UsePlainTextFormatter(formatter => formatter.SetPrefixFormatter($"{0} [{1}]", (template, info) => template.Format(info.Timestamp, info.LogLevel))); }); }); disposables.Add(zLoggerFactory); diff --git a/sandbox/Benchmark/Benchmarks/WriteJsonToConsole.cs b/sandbox/Benchmark/Benchmarks/WriteJsonToConsole.cs index cd27366d..065b7fcd 100644 --- a/sandbox/Benchmark/Benchmarks/WriteJsonToConsole.cs +++ b/sandbox/Benchmark/Benchmarks/WriteJsonToConsole.cs @@ -60,12 +60,9 @@ public void SetUpLogger() zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(builder => + logging.AddZLoggerConsole(console => { - builder.AddConsole(console => - { - console.UseJsonFormatter(); - }); + console.UseJsonFormatter(); }); }); diff --git a/sandbox/Benchmark/Benchmarks/WriteJsonToFile.cs b/sandbox/Benchmark/Benchmarks/WriteJsonToFile.cs index f7fd1e60..d4241dec 100644 --- a/sandbox/Benchmark/Benchmarks/WriteJsonToFile.cs +++ b/sandbox/Benchmark/Benchmarks/WriteJsonToFile.cs @@ -72,16 +72,11 @@ public void SetUpLogger() // ZLogger - zLoggerFactory = LoggerFactory.Create(logging => - { - logging.AddZLogger(builder => + zLoggerFactory = LoggerFactory.Create(logging => logging + .AddZLoggerFile(GetLogFilePath("zlogger.log"), options => { - builder.AddFile(GetLogFilePath("zlogger.log"), options => - { - options.UseJsonFormatter(); - }); - }); - }); + options.UseJsonFormatter(); + })); zLogger = zLoggerFactory.CreateLogger(); diff --git a/sandbox/Benchmark/Benchmarks/WritePlainTextToConsole.cs b/sandbox/Benchmark/Benchmarks/WritePlainTextToConsole.cs index 71bb0e98..aad5c00c 100644 --- a/sandbox/Benchmark/Benchmarks/WritePlainTextToConsole.cs +++ b/sandbox/Benchmark/Benchmarks/WritePlainTextToConsole.cs @@ -55,14 +55,12 @@ public void SetUpLogger() { zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(builder => + logging.AddZLoggerConsole(console => { - builder.AddConsole(console => + console.UsePlainTextFormatter(formatter => { - console.UsePlainTextFormatter(formatter => - { - formatter.SetPrefixFormatter($"{0} [{1}]", (template, info) => template.Format(info.Timestamp, info.LogLevel)); - }); + formatter.SetPrefixFormatter($"{0} [{1}]", + (template, info) => template.Format(info.Timestamp, info.LogLevel)); }); }); }); diff --git a/sandbox/Benchmark/Benchmarks/WritePlainTextToFile.cs b/sandbox/Benchmark/Benchmarks/WritePlainTextToFile.cs index 1509823b..839dad2c 100644 --- a/sandbox/Benchmark/Benchmarks/WritePlainTextToFile.cs +++ b/sandbox/Benchmark/Benchmarks/WritePlainTextToFile.cs @@ -75,17 +75,13 @@ public void SetUpLogger() zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(zLogger => + logging.AddZLoggerFile(GetLogFilePath("zlogger.log"), options => { - zLogger.AddFile(GetLogFilePath("zlogger.log"), - options => - { - options.UsePlainTextFormatter(formatter => - { - formatter.SetPrefixFormatter($"{0} [{1}]", - (template, info) => template.Format(info.Timestamp, info.LogLevel)); - }); - }); + options.UsePlainTextFormatter(formatter => + { + formatter.SetPrefixFormatter($"{0} [{1}]", + (template, info) => template.Format(info.Timestamp, info.LogLevel)); + }); }); }); diff --git a/sandbox/Benchmark/InternalBenchmarks/EmptyLogging.cs b/sandbox/Benchmark/InternalBenchmarks/EmptyLogging.cs index 586463c6..8adc86be 100644 --- a/sandbox/Benchmark/InternalBenchmarks/EmptyLogging.cs +++ b/sandbox/Benchmark/InternalBenchmarks/EmptyLogging.cs @@ -89,38 +89,27 @@ public void SetUpLogger() zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(zLogger => - { - zLogger.AddLogProcessor(new EmptyLogProcessor()); - }); + logging.AddZLoggerLogProcessor(new EmptyLogProcessor()); }); zLogger = zLoggerFactory.CreateLogger(); zLoggerFactory2 = LoggerFactory.Create(logging => { - logging.AddZLogger(z => - { - z.AddLogProcessor(options => new WriteUtf8LogProcessor(options)); - }); + logging.AddZLoggerLogProcessor(options => new WriteUtf8LogProcessor(options)); }); zLogger2 = zLoggerFactory2.CreateLogger(); zLoggerFactory3 = LoggerFactory.Create(logging => { - logging.AddZLogger(z => + logging.AddZLoggerLogProcessor(options => { - z.AddLogProcessor(options => + options.UsePlainTextFormatter(formatter => { - options.UsePlainTextFormatter(formatter => - { - formatter.SetPrefixFormatter($"{0} [{1}]", (template, info) => template.Format(info.Timestamp, info.LogLevel)); - }); - - return new WriteUtf8LogProcessor(options); + formatter.SetPrefixFormatter($"{0} [{1}]", (template, info) => template.Format(info.Timestamp, info.LogLevel)); }); - + return new WriteUtf8LogProcessor(options); }); }); diff --git a/sandbox/Benchmark/SimpleBench.cs b/sandbox/Benchmark/SimpleBench.cs index 2dd9abca..55c072ce 100644 --- a/sandbox/Benchmark/SimpleBench.cs +++ b/sandbox/Benchmark/SimpleBench.cs @@ -61,7 +61,7 @@ protected override Microsoft.Extensions.Logging.ILogger GetLogger() var serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(logging => { - logging.AddZLogger(zLogger => zLogger.AddFile("ZLogger.log")); + logging.AddZLoggerFile("ZLogger.log"); //options.AddZLoggerConsole(); }); var serviceProvider = serviceCollection.BuildServiceProvider(); diff --git a/sandbox/ConsoleApp/ConsoleApp.csproj b/sandbox/ConsoleApp/ConsoleApp.csproj index 6998dc9d..f7dca924 100644 --- a/sandbox/ConsoleApp/ConsoleApp.csproj +++ b/sandbox/ConsoleApp/ConsoleApp.csproj @@ -15,6 +15,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/sandbox/ConsoleApp/Program.cs b/sandbox/ConsoleApp/Program.cs index f7964fb3..6dca7ed7 100644 --- a/sandbox/ConsoleApp/Program.cs +++ b/sandbox/ConsoleApp/Program.cs @@ -1,42 +1,20 @@ -using ConsoleAppFramework; -using ZLogger; +using ZLogger; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Hosting; using System.Threading.Tasks; using System; -using Microsoft.Extensions.DependencyInjection; using System.Threading.Channels; -using Utf8StringInterpolation; using System.Collections.Concurrent; using System.Collections.Generic; -using JetBrains.Profiler.Api; -using System.Threading; -using ZLogger.Formatters; -using ZLogger.Internal; -using ZLogger.Providers; -using System.Numerics; -using System.Text.Json; using System.IO.Hashing; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Net.Sockets; using System.Net.Http; using System.Buffers; -using System.Reflection.PortableExecutable; -using System.Net.Mail; -using Microsoft.Extensions.Options; -using Microsoft.Extensions.DependencyInjection.Extensions; - - - var zLoggerFactory = LoggerFactory.Create(logging => { - logging.AddZLogger(zLogger => - { - zLogger.AddLogProcessor(new EmptyLogProcessor()); - }); + logging.AddZLoggerLogProcessor(new EmptyLogProcessor()); }); var zLogger = zLoggerFactory.CreateLogger("my"); diff --git a/src/ZLogger/Providers/ZLoggerRollingFileLoggerProvider.cs b/src/ZLogger/Providers/ZLoggerRollingFileLoggerProvider.cs index f29228d5..024c1cf4 100644 --- a/src/ZLogger/Providers/ZLoggerRollingFileLoggerProvider.cs +++ b/src/ZLogger/Providers/ZLoggerRollingFileLoggerProvider.cs @@ -12,17 +12,28 @@ public enum RollingInterval Minute } +public sealed class ZLoggerRollingFileOptions : ZLoggerOptions +{ + public Func? FilePathSelector { get; set; } + public RollingInterval RollingInterval { get; set; } = RollingInterval.Day; + public int RollingSizeKB { get; set; } = 512 * 1024; +} + [ProviderAlias("ZLoggerRollingFile")] public class ZLoggerRollingFileLoggerProvider : ILoggerProvider, ISupportExternalScope, IAsyncDisposable { - readonly ZLoggerOptions options; + readonly ZLoggerRollingFileOptions options; readonly AsyncStreamLineMessageWriter streamWriter; IExternalScopeProvider? scopeProvider; - public ZLoggerRollingFileLoggerProvider(Func fileNameSelector, RollingInterval rollInterval, int rollSizeKB, ZLoggerOptions options) + public ZLoggerRollingFileLoggerProvider(ZLoggerRollingFileOptions options) { + if (options.FilePathSelector is null) + { + throw new ArgumentException(nameof(options.FilePathSelector)); + } this.options = options; - var stream = new RollingFileStream(fileNameSelector, rollInterval, rollSizeKB, options.TimeProvider); + var stream = new RollingFileStream(options.FilePathSelector!, options.RollingInterval, options.RollingSizeKB, options.TimeProvider); this.streamWriter = new AsyncStreamLineMessageWriter(stream, this.options); } diff --git a/src/ZLogger/ZLoggerBuilder.cs b/src/ZLogger/ZLoggerBuilder.cs index ff93f747..6f36e1d2 100644 --- a/src/ZLogger/ZLoggerBuilder.cs +++ b/src/ZLogger/ZLoggerBuilder.cs @@ -1,7 +1,7 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using System.Runtime.InteropServices; +using System.Runtime.InteropServices; using System.Text; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.DependencyInjection; using ZLogger.Internal; using ZLogger.Providers; @@ -9,21 +9,11 @@ namespace ZLogger; public static class ZLoggerBuilderExtensions { - public static ILoggingBuilder AddZLogger(this ILoggingBuilder loggingBuilder, Action configure) - { - var builder = new ZLoggerBuilder(loggingBuilder); - configure.Invoke(builder); - return loggingBuilder; - } -} - -public class ZLoggerBuilder(ILoggingBuilder loggingBuilder) -{ - public ZLoggerBuilder AddConsole() => AddConsole((_, _) => { }); - public ZLoggerBuilder AddConsole(Action configure) => AddConsole((options, _) => configure(options)); - public ZLoggerBuilder AddConsole(Action configure) + public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder) => builder.AddZLoggerConsole((_, _) => { }); + public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder, Action configure) => builder.AddZLoggerConsole((options, _) => configure(options)); + public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder, Action configure) { - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddSingleton(serviceProvider => { var options = new ZLoggerConsoleOptions(); configure(options, serviceProvider); @@ -42,16 +32,17 @@ public ZLoggerBuilder AddConsole(Action return new ZLoggerConsoleLoggerProvider(options); }); - return this; + return builder; } - public ZLoggerBuilder AddInMemory(Action configureProcessor) => AddInMemory(null, (_, _) => { }, configureProcessor); - public ZLoggerBuilder AddInMemory(Action configure, Action configureProcessor) => AddInMemory(null, configure, configureProcessor); - public ZLoggerBuilder AddInMemory(object? processorKey, Action configure, Action configureProcessor) => AddInMemory(processorKey, (o, _) => configure(o), configureProcessor); - public ZLoggerBuilder AddInMemory(object? processorKey, Action configure, Action configureProcessor) + public static ILoggingBuilder AddZLoggerInMemory(this ILoggingBuilder builder) => builder.AddZLoggerInMemory(null, (_, _) => { }, _ => { }); + public static ILoggingBuilder AddZLoggerInMemory(this ILoggingBuilder builder, Action configureProcessor) => builder.AddZLoggerInMemory(null, (_, _) => { }, configureProcessor); + public static ILoggingBuilder AddZLoggerInMemory(this ILoggingBuilder builder, Action configure, Action configureProcessor) => builder.AddZLoggerInMemory(null, configure, configureProcessor); + public static ILoggingBuilder AddZLoggerInMemory(this ILoggingBuilder builder, object? processorKey, Action configure, Action configureProcessor) => builder.AddZLoggerInMemory(processorKey, (o, _) => configure(o), configureProcessor); + public static ILoggingBuilder AddZLoggerInMemory(this ILoggingBuilder builder, object? processorKey, Action configure, Action configureProcessor) { - loggingBuilder.Services.AddKeyedSingleton(processorKey, (_, _) => new InMemoryObservableLogProcessor()); - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddKeyedSingleton(processorKey, (_, _) => new InMemoryObservableLogProcessor()); + builder.Services.AddSingleton(serviceProvider => { var options = new ZLoggerOptions(); configure(options, serviceProvider); @@ -63,76 +54,94 @@ public ZLoggerBuilder AddInMemory(object? processorKey, Action AddLogProcessor((_, _) => logProcessor); - public ZLoggerBuilder AddLogProcessor(Func logProcessorFactory) => AddLogProcessor((o, _) => logProcessorFactory(o)); - public ZLoggerBuilder AddLogProcessor(Func logProcessorFactory) + public static ILoggingBuilder AddZLoggerLogProcessor(this ILoggingBuilder builder, IAsyncLogProcessor logProcessor) => builder.AddZLoggerLogProcessor((_, _) => logProcessor); + public static ILoggingBuilder AddZLoggerLogProcessor(this ILoggingBuilder builder, Func logProcessorFactory) => builder.AddZLoggerLogProcessor((o, _) => logProcessorFactory(o)); + public static ILoggingBuilder AddZLoggerLogProcessor(this ILoggingBuilder builder, Func logProcessorFactory) { - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddSingleton(serviceProvider => { var options = new ZLoggerOptions(); var processor = logProcessorFactory(options, serviceProvider); return new ZLoggerLogProcessorLoggerProvider(processor, options); }); - - return this; + return builder; } - public ZLoggerBuilder AddStream(Stream stream) => AddStream((_, _) => stream); - public ZLoggerBuilder AddStream(Stream stream, Action configure) => AddStream((o, _) => { configure(o); return stream; }); - public ZLoggerBuilder AddStream(Stream stream, Action configure) => AddStream((o, p) => { configure(o, p); return stream; }); - public ZLoggerBuilder AddStream(Func streamFactory) + public static ILoggingBuilder AddZLoggerStream(this ILoggingBuilder builder, Stream stream) => builder.AddZLoggerStream((_, _) => stream); + public static ILoggingBuilder AddZLoggerStream(this ILoggingBuilder builder, Stream stream, Action configure) => builder.AddZLoggerStream((o, _) => { configure(o); return stream; }); + public static ILoggingBuilder AddZLoggerStream(this ILoggingBuilder builder, Stream stream, Action configure) => builder.AddZLoggerStream((o, p) => { configure(o, p); return stream; }); + public static ILoggingBuilder AddZLoggerStream(this ILoggingBuilder builder, Func streamFactory) { - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddSingleton(serviceProvider => { var options = new ZLoggerOptions(); var stream = streamFactory(options, serviceProvider); return new ZLoggerStreamLoggerProvider(stream, options); }); - - return this; + return builder; } - public ZLoggerBuilder AddFile(string fileName) => AddFile((_, _) => fileName); - public ZLoggerBuilder AddFile(string fileName, Action configure) => AddFile((o, _) => { configure(o); return fileName; }); - public ZLoggerBuilder AddFile(string fileName, Action configure) => AddFile((o, p) => { configure(o, p); return fileName; }); - public ZLoggerBuilder AddFile(Func fileNameFactory) + public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, string filePath) => builder.AddZLoggerFile((_, _) => filePath); + public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, string filePath, Action configure) => builder.AddZLoggerFile((o, _) => { configure(o); return filePath; }); + public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, string filePath, Action configure) => builder.AddZLoggerFile((o, p) => { configure(o, p); return filePath; }); + public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, Func filePathFactory) { - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddSingleton(serviceProvider => { var options = new ZLoggerOptions(); - var fileName = fileNameFactory(options, serviceProvider); - return new ZLoggerFileLoggerProvider(fileName, options); + var filePath = filePathFactory(options, serviceProvider); + return new ZLoggerFileLoggerProvider(filePath, options); }); - - return this; + return builder; } - - /// DateTimeOffset is date of file open time(UTC), int is number sequence. + + /// DateTimeOffset is date of file open time(UTC), int is number sequence. /// Interval to automatically rotate files - /// Limit size of single file. - public ZLoggerBuilder AddRollingFile(Func fileNameSelector, RollingInterval rollInterval, int rollSizeKB) => AddRollingFile(fileNameSelector, rollInterval, rollSizeKB, (_, _) => { }); + public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Func filePathSelector, RollingInterval rollInterval) => + builder.AddZLoggerRollingFile((o, _) => + { + o.FilePathSelector = filePathSelector; + o.RollingInterval = rollInterval; + o.RollingSizeKB = int.MaxValue; + }); + - /// DateTimeOffset is date of file open time(UTC), int is number sequence. - /// Interval to automatically rotate files + /// DateTimeOffset is date of file open time(UTC), int is number sequence. /// Limit size of single file. - public ZLoggerBuilder AddRollingFile(Func fileNameSelector, RollingInterval rollInterval, int rollSizeKB, Action configure) => AddRollingFile(fileNameSelector, rollInterval, rollSizeKB, (o, _) => configure(o)); - - /// DateTimeOffset is date of file open time(UTC), int is number sequence. + public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Func filePathSelector, int rollSizeKB) => + builder.AddZLoggerRollingFile((o, _) => + { + o.FilePathSelector = filePathSelector; + o.RollingInterval = RollingInterval.Infinite; + o.RollingSizeKB = rollSizeKB; + }); + + /// DateTimeOffset is date of file open time(UTC), int is number sequence. /// Interval to automatically rotate files /// Limit size of single file. - public ZLoggerBuilder AddRollingFile(Func fileNameSelector, RollingInterval rollInterval, int rollSizeKB, Action configure) + public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Func filePathSelector, RollingInterval rollInterval, int rollSizeKB) => + builder.AddZLoggerRollingFile((o, _) => + { + o.FilePathSelector = filePathSelector; + o.RollingInterval = rollInterval; + o.RollingSizeKB = rollSizeKB; + }); + + public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Action configure) => + builder.AddZLoggerRollingFile((o, _) => configure(o)); + + public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Action configure) { - loggingBuilder.Services.AddSingleton(serviceProvider => + builder.Services.AddSingleton(serviceProvider => { - var options = new ZLoggerOptions(); + var options = new ZLoggerRollingFileOptions(); configure(options, serviceProvider); - return new ZLoggerRollingFileLoggerProvider(fileNameSelector, rollInterval, rollSizeKB, options); + return new ZLoggerRollingFileLoggerProvider(options); }); - - return this; + return builder; } - } + diff --git a/tests/ZLogger.MessagePack.Tests/FormatterTest.cs b/tests/ZLogger.MessagePack.Tests/FormatterTest.cs index 4498299d..f1350965 100644 --- a/tests/ZLogger.MessagePack.Tests/FormatterTest.cs +++ b/tests/ZLogger.MessagePack.Tests/FormatterTest.cs @@ -1,6 +1,5 @@ using System; using FluentAssertions; -using MessagePack; using Microsoft.Extensions.Logging; using Xunit; @@ -22,7 +21,7 @@ public FormatterTest() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(_ => processor)); + x.AddZLoggerLogProcessor(processor); }); logger = loggerFactory.CreateLogger("test"); } @@ -123,7 +122,7 @@ public void LowercaseMutator() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); logger = loggerFactory.CreateLogger("test"); @@ -154,7 +153,7 @@ public void ExcludeLogInfoProperties() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); logger = loggerFactory.CreateLogger("test"); @@ -180,11 +179,9 @@ public void ExcludeAllLogInfo() processor = new TestProcessor(options); - var loggerFactory = LoggerFactory.Create(x => - { - x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); - }); + var loggerFactory = LoggerFactory.Create(x => x + .SetMinimumLevel(LogLevel.Debug) + .AddZLoggerLogProcessor(processor)); logger = loggerFactory.CreateLogger("test"); logger.ZLogInformation(new EventId(1, "TEST"), $"HELLO!"); diff --git a/tests/ZLogger.MessagePack.Tests/ScopeTest.cs b/tests/ZLogger.MessagePack.Tests/ScopeTest.cs index b4c0d697..9194633d 100644 --- a/tests/ZLogger.MessagePack.Tests/ScopeTest.cs +++ b/tests/ZLogger.MessagePack.Tests/ScopeTest.cs @@ -23,7 +23,11 @@ public ScopeTest() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(options => { options.IncludeScopes = true; return processor; })); + x.AddZLoggerLogProcessor(options => + { + options.IncludeScopes = true; + return processor; + }); }); logger = loggerFactory.CreateLogger("test"); } diff --git a/tests/ZLogger.Tests/BatchingAsyncLogProcessorTest.cs b/tests/ZLogger.Tests/BatchingAsyncLogProcessorTest.cs index a880ebe5..3db5b609 100644 --- a/tests/ZLogger.Tests/BatchingAsyncLogProcessorTest.cs +++ b/tests/ZLogger.Tests/BatchingAsyncLogProcessorTest.cs @@ -14,10 +14,7 @@ public void LessThanBatchSize() var options = new ZLoggerOptions(); var batchingProcessor = new TestBatchingProcessor(10, options); - using (var loggerFactory = LoggerFactory.Create(x => - { - x.AddZLogger(zLogger => zLogger.AddLogProcessor(batchingProcessor)); - })) + using (var loggerFactory = LoggerFactory.Create(x => x.AddZLoggerLogProcessor(batchingProcessor))) { var logger = loggerFactory.CreateLogger("test"); @@ -37,10 +34,7 @@ public void OverflowBatchSize() var options = new ZLoggerOptions(); var batchingProcessor = new TestBatchingProcessor(3, options); - using (var loggerFactory = LoggerFactory.Create(x => - { - x.AddZLogger(zLogger => zLogger.AddLogProcessor(batchingProcessor)); - })) + using (var loggerFactory = LoggerFactory.Create(x => x.AddZLoggerLogProcessor(batchingProcessor))) { var logger = loggerFactory.CreateLogger("test"); @@ -60,10 +54,7 @@ public void ErrorProcess() var options = new ZLoggerOptions(); var batchingProcessor = new ErrorBatchingProcessor(1, options); - using (var loggerFactory = LoggerFactory.Create(x => - { - x.AddZLogger(zLogger => zLogger.AddLogProcessor(batchingProcessor)); - })) + using (var loggerFactory = LoggerFactory.Create(x => x.AddZLoggerLogProcessor(batchingProcessor))) { var logger = loggerFactory.CreateLogger("test"); logger.ZLogInformation($"hehehe"); diff --git a/tests/ZLogger.Tests/BuilderTest.cs b/tests/ZLogger.Tests/BuilderTest.cs index d1ed4adf..b8feb73b 100644 --- a/tests/ZLogger.Tests/BuilderTest.cs +++ b/tests/ZLogger.Tests/BuilderTest.cs @@ -22,7 +22,7 @@ public void LogLevelConfiguration() using var loggerFactory = LoggerFactory.Create(x => { x.AddConfiguration(configuration.GetSection("Logging")); - x.AddZLogger(logging => logging.AddConsole()); + x.AddZLoggerConsole(); }); var logger = loggerFactory.CreateLogger(); @@ -44,23 +44,17 @@ public void LogLevelConfiguration_ProviderAlias() new("Logging:ZLoggerInMemory:LogLevel:Default", "Error") }) .Build(); - - using var loggerFactory = LoggerFactory.Create(x => - { - x.AddConfiguration(configuration.GetSection("Logging")); - x.AddZLogger(logging => - { - logging.AddConsole(); - logging.AddInMemory( - "Foo", - (options, services) => { }, - processor => - { - processor.MessageReceived += msg => messages.Add(msg); - }); - }); - }); + using var loggerFactory = LoggerFactory.Create(x => x + .AddConfiguration(configuration.GetSection("Logging")) + .AddZLoggerConsole() + .AddZLoggerInMemory( + "Foo", + (options, services) => { }, + processor => + { + processor.MessageReceived += msg => messages.Add(msg); + })); var logger = loggerFactory.CreateLogger(); diff --git a/tests/ZLogger.Tests/FileProviderTest.cs b/tests/ZLogger.Tests/FileProviderTest.cs index 39858d8a..b003f4aa 100644 --- a/tests/ZLogger.Tests/FileProviderTest.cs +++ b/tests/ZLogger.Tests/FileProviderTest.cs @@ -15,7 +15,7 @@ public void CreateAppend() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddFile(Path)); + x.AddZLoggerFile(Path); }); var logger = loggerFactory.CreateLogger("mytest"); @@ -41,7 +41,7 @@ public void CreateAppend() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddFile(Path)); + x.AddZLoggerFile(Path); }); var logger = loggerFactory.CreateLogger("mytest"); diff --git a/tests/ZLogger.Tests/JsonFormatTest.cs b/tests/ZLogger.Tests/JsonFormatTest.cs index dfeb4bf0..6020a531 100644 --- a/tests/ZLogger.Tests/JsonFormatTest.cs +++ b/tests/ZLogger.Tests/JsonFormatTest.cs @@ -18,25 +18,21 @@ public void FormatLogEntry_CustomMetadata() var sourceCodeHash = Guid.NewGuid().ToString(); - var loggerFactory = LoggerFactory.Create(x => - { - x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => + var loggerFactory = LoggerFactory.Create(x => x + .SetMinimumLevel(LogLevel.Debug) + .AddZLoggerStream(ms, options => { - zLogger.AddStream(ms, options => - { - var hashProp = JsonEncodedText.Encode("Hash"); + var hashProp = JsonEncodedText.Encode("Hash"); - options.UseJsonFormatter(formatter => + options.UseJsonFormatter(formatter => + { + formatter.AdditionalFormatter = (writer, _) => { - formatter.AdditionalFormatter = (writer, _) => - { - writer.WriteString(hashProp, sourceCodeHash); - }; - }); + writer.WriteString(hashProp, sourceCodeHash); + }; }); - }); - }); + })); + var logger = loggerFactory.CreateLogger("test"); var tako = 100; @@ -75,7 +71,7 @@ public void FormatLogEntry_ExcludeLogInfoProperties() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -106,7 +102,7 @@ public void FormatLogEntry_ExcludeAllLogInfo() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -141,7 +137,7 @@ public void KeyNameMutator_Lower() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -174,7 +170,7 @@ public void KeyNameMutatorProp1() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -207,7 +203,7 @@ public void KeyNameMutatorProp2() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -241,7 +237,7 @@ public void NestPayload() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -279,7 +275,7 @@ public void ConfigureName() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -314,7 +310,7 @@ public void KeyNameMutator_CallMethod() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); diff --git a/tests/ZLogger.Tests/NamedParamTest.cs b/tests/ZLogger.Tests/NamedParamTest.cs index d25c5d33..b3f75a18 100644 --- a/tests/ZLogger.Tests/NamedParamTest.cs +++ b/tests/ZLogger.Tests/NamedParamTest.cs @@ -18,7 +18,7 @@ public void StructuredLoggingOptions() using var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); diff --git a/tests/ZLogger.Tests/PlainTextFormatTest.cs b/tests/ZLogger.Tests/PlainTextFormatTest.cs index d63e3084..e55a2a51 100644 --- a/tests/ZLogger.Tests/PlainTextFormatTest.cs +++ b/tests/ZLogger.Tests/PlainTextFormatTest.cs @@ -22,7 +22,7 @@ public void OverloadCheck() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); @@ -91,7 +91,7 @@ public void TextOptions() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processsor)); + x.AddZLoggerLogProcessor(processsor); }); var logger = loggerFactory.CreateLogger("test"); @@ -121,7 +121,7 @@ public void CollectionDestructuring() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddLogProcessor(processor)); + x.AddZLoggerLogProcessor(processor); }); var logger = loggerFactory.CreateLogger("test"); diff --git a/tests/ZLogger.Tests/RollingFileProviderTest.cs b/tests/ZLogger.Tests/RollingFileProviderTest.cs index 10b8c13b..9919a11a 100644 --- a/tests/ZLogger.Tests/RollingFileProviderTest.cs +++ b/tests/ZLogger.Tests/RollingFileProviderTest.cs @@ -36,11 +36,13 @@ public async Task RollByInterval() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddRollingFile( - (dt, seq) => Path.Join(directory, $"ZLoggerRollingTest_{dt:yyyy-MM-dd}-{seq}.log"), - RollingInterval.Day, - 5, - options => options.TimeProvider = timeProvider)); + x.AddZLoggerRollingFile(options => + { + options.FilePathSelector = (dt, seq) => Path.Join(directory, $"ZLoggerRollingTest_{dt:yyyy-MM-dd}-{seq}.log"); + options.RollingInterval = RollingInterval.Day; + options.RollingSizeKB = 5; + options.TimeProvider = timeProvider; + }); }); File.Exists(path1).Should().Be(true); @@ -93,11 +95,13 @@ public async Task RollBySize() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => zLogger.AddRollingFile( - (dt, seq) => Path.Join(directory, $"ZLoggerRollingTest_{dt:yyyy-MM-dd}-{seq}.log"), - RollingInterval.Day, - 5, - options => options.TimeProvider = timeProvider)); + x.AddZLoggerRollingFile(options => + { + options.FilePathSelector = (dt, seq) => Path.Join(directory, $"ZLoggerRollingTest_{dt:yyyy-MM-dd}-{seq}.log"); + options.RollingInterval = RollingInterval.Day; + options.RollingSizeKB = 5; + options.TimeProvider = timeProvider; + }); }); File.Exists(path1).Should().Be(true); diff --git a/tests/ZLogger.Tests/ScopeTest.cs b/tests/ZLogger.Tests/ScopeTest.cs index 75d0192d..685f87b4 100644 --- a/tests/ZLogger.Tests/ScopeTest.cs +++ b/tests/ZLogger.Tests/ScopeTest.cs @@ -25,13 +25,10 @@ public ScopeTest() var loggerFactory = LoggerFactory.Create(x => { x.SetMinimumLevel(LogLevel.Debug); - x.AddZLogger(zLogger => + x.AddZLoggerLogProcessor(options => { - zLogger.AddLogProcessor(options => - { - options.IncludeScopes = true; - return processor; - }); + options.IncludeScopes = true; + return processor; }); }); logger = loggerFactory.CreateLogger("test"); @@ -118,13 +115,10 @@ public void VersionMismatch() var invalidScopeStateOwner = new InvalidScopeStateOwner(); var loggerFactory = LoggerFactory.Create(x => { - x.AddZLogger(zLogger => + x.AddZLoggerLogProcessor(options => { - zLogger.AddLogProcessor(options => - { - options.IncludeScopes = true; - return invalidScopeStateOwner; - }); + options.IncludeScopes = true; + return invalidScopeStateOwner; }); }); logger = loggerFactory.CreateLogger("test"); diff --git a/tests/ZLogger.Tests/TimestampTest.cs b/tests/ZLogger.Tests/TimestampTest.cs index d1e24334..4d053079 100644 --- a/tests/ZLogger.Tests/TimestampTest.cs +++ b/tests/ZLogger.Tests/TimestampTest.cs @@ -27,19 +27,16 @@ string GetLogString(MessageTemplateHandler prefixTemplate) LogProcessor processor = new(); var factory = LoggerFactory.Create(builder => { - builder.AddZLogger(zlogger => + builder.AddZLoggerLogProcessor(options => { - zlogger.AddLogProcessor(options => + options.TimeProvider = new FakeTime(); + options.UsePlainTextFormatter(formatter => { - options.TimeProvider = new FakeTime(); - options.UsePlainTextFormatter(formatter => - { - formatter.SetPrefixFormatter(prefixTemplate, (template, info) => template.Format(info.Timestamp)); - }); - processor.SetOptions(options); - - return processor; + formatter.SetPrefixFormatter(prefixTemplate, (template, info) => template.Format(info.Timestamp)); }); + processor.SetOptions(options); + + return processor; }); });