3 changed files with 166 additions and 29 deletions
@ -0,0 +1,116 @@ |
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using System.Runtime.CompilerServices; |
|||
|
|||
namespace Avalonia.Logging |
|||
{ |
|||
/// <summary>
|
|||
/// Logger sink parametrized for given logging level.
|
|||
/// </summary>
|
|||
public readonly struct ParametrizedLogger |
|||
{ |
|||
private readonly ILogSink _sink; |
|||
private readonly LogEventLevel _level; |
|||
|
|||
public ParametrizedLogger(ILogSink sink, LogEventLevel level) |
|||
{ |
|||
_sink = sink; |
|||
_level = level; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Checks if this logger can be used.
|
|||
/// </summary>
|
|||
public bool IsValid => _sink != null; |
|||
|
|||
/// <summary>
|
|||
/// Logs an event.
|
|||
/// </summary>
|
|||
/// <param name="area">The area that the event originates.</param>
|
|||
/// <param name="source">The object from which the event originates.</param>
|
|||
/// <param name="messageTemplate">The message template.</param>
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public void Log( |
|||
string area, |
|||
object source, |
|||
string messageTemplate) |
|||
{ |
|||
_sink.Log(_level, area, source, messageTemplate); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Logs an event.
|
|||
/// </summary>
|
|||
/// <param name="area">The area that the event originates.</param>
|
|||
/// <param name="source">The object from which the event originates.</param>
|
|||
/// <param name="messageTemplate">The message template.</param>
|
|||
/// <param name="propertyValue0">Message property value.</param>
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public void Log<T0>( |
|||
string area, |
|||
object source, |
|||
string messageTemplate, |
|||
T0 propertyValue0) |
|||
{ |
|||
_sink.Log(_level, area, source, messageTemplate, propertyValue0); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Logs an event.
|
|||
/// </summary>
|
|||
/// <param name="area">The area that the event originates.</param>
|
|||
/// <param name="source">The object from which the event originates.</param>
|
|||
/// <param name="messageTemplate">The message template.</param>
|
|||
/// <param name="propertyValue0">Message property value.</param>
|
|||
/// <param name="propertyValue1">Message property value.</param>
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public void Log<T0, T1>( |
|||
string area, |
|||
object source, |
|||
string messageTemplate, |
|||
T0 propertyValue0, |
|||
T1 propertyValue1) |
|||
{ |
|||
_sink.Log(_level, area, source, messageTemplate, propertyValue0, propertyValue1); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Logs an event.
|
|||
/// </summary>
|
|||
/// <param name="area">The area that the event originates.</param>
|
|||
/// <param name="source">The object from which the event originates.</param>
|
|||
/// <param name="messageTemplate">The message template.</param>
|
|||
/// <param name="propertyValue0">Message property value.</param>
|
|||
/// <param name="propertyValue1">Message property value.</param>
|
|||
/// <param name="propertyValue2">Message property value.</param>
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public void Log<T0, T1, T2>( |
|||
string area, |
|||
object source, |
|||
string messageTemplate, |
|||
T0 propertyValue0, |
|||
T1 propertyValue1, |
|||
T2 propertyValue2) |
|||
{ |
|||
_sink.Log(_level, area, source, messageTemplate, propertyValue0, propertyValue1, propertyValue2); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Logs an event.
|
|||
/// </summary>
|
|||
/// <param name="area">The area that the event originates.</param>
|
|||
/// <param name="source">The object from which the event originates.</param>
|
|||
/// <param name="messageTemplate">The message template.</param>
|
|||
/// <param name="propertyValues">The message property values.</param>
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public void Log( |
|||
string area, |
|||
object source, |
|||
string messageTemplate, |
|||
params object[] propertyValues) |
|||
{ |
|||
_sink.Log(_level, area, source, messageTemplate, propertyValues); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue