MessageLevel
MessageLevel describes message severity.
/// <summary>Message severity level.</summary>
/// <remarks>Cast compatible with Microsoft.Extensions.Logging.LogLevel.</remarks>
public enum MessageLevel
{
/// <summary>Detailed message. May contain sensitive application data.</summary>
Trace,
/// <summary>Message for development investigation.</summary>
Debug,
/// <summary>Application flow information.</summary>
Information,
/// <summary>Abnormal and unexpected events.</summary>
Warning,
/// <summary>Error in flow, but not application failure.</summary>
Error,
/// <summary>Application failure or crash.</summary>
Critical,
/// <summary>No logging.</summary>
None
}
MessageLevel is castable to and from Microsoft.Extensions.Logging.LogLevel.
// MessageLevel -> LogLevel
Microsoft.Extensions.Logging.LogLevel logLevel = (LogLevel)(int)MessageLevel.Critical;
// LogLevel -> MessageLevel
MessageLevel messageLevel = (MessageLevel)(int)Microsoft.Extensions.Logging.LogLevel.Critical;
.SetSeverity(messagelevel) assigns message level to message description.
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(MessageLevel.Error)
.SetReadOnly();
.SetSeverity(messagelevel) assigns overriding message level to message.
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(MessageLevel.Error);
// Change message level
IMessage message = bad.New().SetSeverity(MessageLevel.Critical);
.SetSeverity(loglevel) assigns .Severity as LogLevel (Avalanche.Message.Logging.dll).
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(LogLevel.Error);
.SetSeverity(loglevel) assigns as LogLevel to message description (Avalanche.Message.Logging.dll).
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(LogLevel.Error)
.SetReadOnly();
// Change message level
IMessage message = bad.New().SetSeverity(LogLevel.Error);
Full Example
Full example
using System;
using System.Collections.Generic;
using Avalanche.Utilities;
using Avalanche.Message;
using static System.Console;
using Microsoft.Extensions.Logging;
class messagelevel
{
public static void Run()
{
{
#pragma warning disable CS0219
// <00>
// MessageLevel -> LogLevel
Microsoft.Extensions.Logging.LogLevel logLevel = (LogLevel)(int)MessageLevel.Critical;
// LogLevel -> MessageLevel
MessageLevel messageLevel = (MessageLevel)(int)Microsoft.Extensions.Logging.LogLevel.Critical;
// </00>
#pragma warning restore CS0219
}
{
// <01>
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(MessageLevel.Error)
.SetReadOnly();
// </01>
}
{
// <02>
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(MessageLevel.Error);
// Change message level
IMessage message = bad.New().SetSeverity(MessageLevel.Critical);
// </02>
}
{
// <03>
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(LogLevel.Error);
// </03>
}
{
// <04>
IMessageDescription bad =
new MessageDescription("MyLibrary.Bad", 0x0AC40000 | StatusCodes.Bad, "'{object}': Bad")
.SetSeverity(LogLevel.Error)
.SetReadOnly();
// Change message level
IMessage message = bad.New().SetSeverity(LogLevel.Error);
// </04>
}
}
}