-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #147 from serilog/dev
5.0.0 Release
- Loading branch information
Showing
18 changed files
with
570 additions
and
126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
109 changes: 109 additions & 0 deletions
109
src/Serilog.Sinks.Console/ConsoleAuditLoggerConfigurationExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
// Copyright 2017 Serilog Contributors | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
using Serilog.Configuration; | ||
using Serilog.Core; | ||
using Serilog.Events; | ||
using Serilog.Formatting; | ||
using Serilog.Sinks.SystemConsole; | ||
using Serilog.Sinks.SystemConsole.Output; | ||
using Serilog.Sinks.SystemConsole.Themes; | ||
using System; | ||
|
||
namespace Serilog | ||
{ | ||
/// <summary> | ||
/// Adds the AuditTo.Console() extension method to <see cref="LoggerAuditSinkConfiguration"/>. | ||
/// </summary> | ||
public static class ConsoleAuditLoggerConfigurationExtensions | ||
{ | ||
/// <summary> | ||
/// Writes log events to <see cref="System.Console"/>. | ||
/// </summary> | ||
/// <param name="sinkConfiguration">Logger sink configuration.</param> | ||
/// <param name="restrictedToMinimumLevel">The minimum level for | ||
/// events passed through the sink. Ignored when <paramref name="levelSwitch"/> is specified.</param> | ||
/// <param name="outputTemplate">A message template describing the format used to write to the sink. | ||
/// The default is <code>"[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}"</code>.</param> | ||
/// <param name="syncRoot">An object that will be used to `lock` (sync) access to the console output. If you specify this, you | ||
/// will have the ability to lock on this object, and guarantee that the console sink will not be about to output anything while | ||
/// the lock is held.</param> | ||
/// <param name="formatProvider">Supplies culture-specific formatting information, or null.</param> | ||
/// <param name="levelSwitch">A switch allowing the pass-through minimum level | ||
/// to be changed at runtime.</param> | ||
/// <param name="standardErrorFromLevel">Specifies the level at which events will be written to standard error.</param> | ||
/// <param name="theme">The theme to apply to the styled output. If not specified, | ||
/// uses <see cref="SystemConsoleTheme.Literate"/>.</param> | ||
/// <param name="applyThemeToRedirectedOutput">Applies the selected or default theme even when output redirection is detected.</param> | ||
/// <returns>Configuration object allowing method chaining.</returns> | ||
/// <exception cref="ArgumentNullException">When <paramref name="sinkConfiguration"/> is <code>null</code></exception> | ||
/// <exception cref="ArgumentNullException">When <paramref name="outputTemplate"/> is <code>null</code></exception> | ||
public static LoggerConfiguration Console( | ||
this LoggerAuditSinkConfiguration sinkConfiguration, | ||
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum, | ||
string outputTemplate = ConsoleLoggerConfigurationExtensions.DefaultConsoleOutputTemplate, | ||
IFormatProvider? formatProvider = null, | ||
LoggingLevelSwitch? levelSwitch = null, | ||
LogEventLevel? standardErrorFromLevel = null, | ||
ConsoleTheme? theme = null, | ||
bool applyThemeToRedirectedOutput = false, | ||
object? syncRoot = null) | ||
{ | ||
if (sinkConfiguration is null) throw new ArgumentNullException(nameof(sinkConfiguration)); | ||
if (outputTemplate is null) throw new ArgumentNullException(nameof(outputTemplate)); | ||
|
||
var appliedTheme = !applyThemeToRedirectedOutput && (System.Console.IsOutputRedirected || System.Console.IsErrorRedirected) ? | ||
ConsoleTheme.None : | ||
theme ?? SystemConsoleThemes.Literate; | ||
|
||
syncRoot ??= ConsoleLoggerConfigurationExtensions.DefaultSyncRoot; | ||
|
||
var formatter = new OutputTemplateRenderer(appliedTheme, outputTemplate, formatProvider); | ||
return sinkConfiguration.Sink(new ConsoleSink(appliedTheme, formatter, standardErrorFromLevel, syncRoot), restrictedToMinimumLevel, levelSwitch); | ||
} | ||
|
||
/// <summary> | ||
/// Writes log events to <see cref="System.Console"/>. | ||
/// </summary> | ||
/// <param name="sinkConfiguration">Logger sink configuration.</param> | ||
/// <param name="formatter">Controls the rendering of log events into text, for example to log JSON. To | ||
/// control plain text formatting, use the overload that accepts an output template.</param> | ||
/// <param name="syncRoot">An object that will be used to `lock` (sync) access to the console output. If you specify this, you | ||
/// will have the ability to lock on this object, and guarantee that the console sink will not be about to output anything while | ||
/// the lock is held.</param> | ||
/// <param name="restrictedToMinimumLevel">The minimum level for | ||
/// events passed through the sink. Ignored when <paramref name="levelSwitch"/> is specified.</param> | ||
/// <param name="levelSwitch">A switch allowing the pass-through minimum level | ||
/// to be changed at runtime.</param> | ||
/// <param name="standardErrorFromLevel">Specifies the level at which events will be written to standard error.</param> | ||
/// <returns>Configuration object allowing method chaining.</returns> | ||
/// <exception cref="ArgumentNullException">When <paramref name="sinkConfiguration"/> is <code>null</code></exception> | ||
/// <exception cref="ArgumentNullException">When <paramref name="formatter"/> is <code>null</code></exception> | ||
public static LoggerConfiguration Console( | ||
this LoggerAuditSinkConfiguration sinkConfiguration, | ||
ITextFormatter formatter, | ||
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum, | ||
LoggingLevelSwitch? levelSwitch = null, | ||
LogEventLevel? standardErrorFromLevel = null, | ||
object? syncRoot = null) | ||
{ | ||
if (sinkConfiguration is null) throw new ArgumentNullException(nameof(sinkConfiguration)); | ||
if (formatter is null) throw new ArgumentNullException(nameof(formatter)); | ||
|
||
syncRoot ??= ConsoleLoggerConfigurationExtensions.DefaultSyncRoot; | ||
|
||
return sinkConfiguration.Sink(new ConsoleSink(ConsoleTheme.None, formatter, standardErrorFromLevel, syncRoot), restrictedToMinimumLevel, levelSwitch); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,50 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<Description>A Serilog sink that writes log events to the console/terminal.</Description> | ||
<VersionPrefix>5.0.0</VersionPrefix> | ||
<Authors>Serilog Contributors</Authors> | ||
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT'">net462;net471</TargetFrameworks> | ||
<TargetFrameworks>$(TargetFrameworks);netstandard2.1;netstandard2.0;net5.0;net6.0;net7.0</TargetFrameworks> | ||
<Nullable>enable</Nullable> | ||
<AssemblyOriginatorKeyFile>../../assets/Serilog.snk</AssemblyOriginatorKeyFile> | ||
<SignAssembly>true</SignAssembly> | ||
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign> | ||
<PackageTags>serilog;console;terminal</PackageTags> | ||
<PackageIcon>icon.png</PackageIcon> | ||
<PackageProjectUrl>https://github.com/serilog/serilog-sinks-console</PackageProjectUrl> | ||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> | ||
<RepositoryUrl>https://github.com/serilog/serilog-sinks-console</RepositoryUrl> | ||
<RepositoryType>git</RepositoryType> | ||
<GenerateDocumentationFile>true</GenerateDocumentationFile> | ||
<TreatWarningsAsErrors>True</TreatWarningsAsErrors> | ||
<RootNamespace>Serilog</RootNamespace> | ||
<LangVersion>latest</LangVersion> | ||
<PackageReadmeFile>README.md</PackageReadmeFile> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup> | ||
<Description>A Serilog sink that writes log events to the console/terminal.</Description> | ||
<VersionPrefix>4.1.0</VersionPrefix> | ||
<Authors>Serilog Contributors</Authors> | ||
<TargetFrameworks>net45;netstandard1.3;netstandard2.0;net5.0</TargetFrameworks> | ||
<LangVersion>8.0</LangVersion> | ||
<Nullable>enable</Nullable> | ||
<AssemblyOriginatorKeyFile>../../assets/Serilog.snk</AssemblyOriginatorKeyFile> | ||
<SignAssembly>true</SignAssembly> | ||
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign> | ||
<PackageTags>serilog;console;terminal</PackageTags> | ||
<PackageIcon>icon.png</PackageIcon> | ||
<PackageProjectUrl>https://github.com/serilog/serilog-sinks-console</PackageProjectUrl> | ||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> | ||
<RepositoryUrl>https://github.com/serilog/serilog-sinks-console</RepositoryUrl> | ||
<RepositoryType>git</RepositoryType> | ||
<GenerateDocumentationFile>true</GenerateDocumentationFile> | ||
<TreatWarningsAsErrors>True</TreatWarningsAsErrors> | ||
<TreatSpecificWarningsAsErrors /> | ||
<RootNamespace>Serilog</RootNamespace> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(TargetFramework)' != 'net462' "> | ||
<DefineConstants>$(DefineConstants);RUNTIME_INFORMATION</DefineConstants> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition=" '$(TargetFramework)' != 'net45' "> | ||
<DefineConstants>$(DefineConstants);RUNTIME_INFORMATION</DefineConstants> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Serilog" Version="2.10.0" /> | ||
<PackageReference Include="Nullable" Version="1.3.0" PrivateAssets="all" /> | ||
</ItemGroup> | ||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net5.0' "> | ||
<DefineConstants>$(DefineConstants);FEATURE_SPAN</DefineConstants> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0' "> | ||
<DefineConstants>$(DefineConstants);FEATURE_SPAN</DefineConstants> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net7.0' "> | ||
<DefineConstants>$(DefineConstants);FEATURE_SPAN</DefineConstants> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Serilog" Version="3.1.0-*" /> | ||
<PackageReference Include="Nullable" Version="1.3.0" PrivateAssets="all" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Include="..\..\assets\icon.png" Pack="true" Visible="false" PackagePath="" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="..\..\assets\icon.png" Pack="true" Visible="false" PackagePath="" /> | ||
<None Include="..\..\README.md" Pack="true" Visible="false" PackagePath="" /> | ||
</ItemGroup> | ||
</Project> |
Oops, something went wrong.