OkoloIt.Utilities.Logging

Форк
0
96 строк · 2.6 Кб
1
using System.Text;
2

3
using OkoloIt.Utilities.Logging.Configuration;
4

5
namespace OkoloIt.Utilities.Logging.Data;
6

7
/// <summary>
8
/// Данные лога.
9
/// </summary>
10
public sealed class LogMessage
11
{
12
    #region Internal Constructors
13

14
    /// <summary>
15
    /// Сохдает экземпляр данных лога.
16
    /// </summary>
17
    /// <param name="level">Уровень лога.</param>
18
    /// <param name="message">Сообщение.</param>
19
    internal LogMessage(LogLevel level, string message)
20
    {
21
        Level = level;
22
        Message = message;
23
        DateTime = DateTime.Now;
24
    }
25

26
    #endregion Internal Constructors
27

28
    #region Internal Properties
29

30
    /// <summary>
31
    /// Файл, в котором произошло обращение к логеру.
32
    /// </summary>
33
    internal string CallerFile { get; init; } = string.Empty;
34

35
    /// <summary>
36
    /// Строка, в которой произошло обращение к логеру.
37
    /// </summary>
38
    internal int CallerLine { get; init; } = 0;
39

40
    /// <summary>
41
    /// Метод, в котором произошло обращение к логеру.
42
    /// </summary>
43
    internal string CallerMember { get; init; } = string.Empty;
44

45
    /// <summary>
46
    /// Время создания лога.
47
    /// </summary>
48
    internal DateTime DateTime { get; }
49

50
    /// <summary>
51
    /// Уровень лога.
52
    /// </summary>
53
    internal LogLevel Level { get; }
54

55
    /// <summary>
56
    /// Сообщение лога.
57
    /// </summary>
58
    internal string Message { get; } = string.Empty;
59

60
    #endregion Internal Properties
61

62
    #region Internal Methods
63

64
    /// <summary>
65
    /// Получает строковое представление уровня лога.
66
    /// </summary>
67
    /// <returns>Название уровня лога.</returns>
68
    internal string GetLevel()
69
    {
70
        return $"[{Level}]".ToUpper()
71
            .PadRight(7, ' ');
72
    }
73

74
    /// <summary>
75
    /// Возвращает собранное сообщение лога.
76
    /// </summary>
77
    /// <returns>Собранное сообщение лога.</returns>
78
    internal string GetLog(string format)
79
    {
80
        try {
81
            return new StringBuilder().Append(string.Format(
82
                format,
83
                DateTime,
84
                CallerFile,
85
                CallerLine
86
            ))
87
            .Append(Message)
88
            .ToString();
89
        }
90
        catch {
91
            throw new ArgumentException("Некорректная строка формата!");
92
        }
93
    }
94

95
    #endregion Internal Methods
96
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.