【问题标题】:Padding Severity Level Field in Enterprise Library Logger在 Enterprise Library Logger 中填充严重级别字段
【发布时间】:2015-02-28 22:25:32
【问题描述】:

我正在尝试在企业记录器库 Text Formatter 中找到一种填充字段的方法。

我的日志文件条目的当前格式如下:

02/01/2015 15:36:43.946|信息|测试信息消息 2015 年 2 月 1 日 15:36:43.946|错误|测试错误消息

但是,为了便于在记事本等基于文本的查看器中阅读,我希望它们的格式如下:

02/01/2015 15:36:43.946|信息|测试信息消息 2015 年 2 月 1 日 15:36:43.946|错误 |测试错误消息

这是否可以在令牌配置中实现,或者是否需要自定义格式化程序,如果需要,是否有任何好的示例可以为我尝试实现的目标提供一个起点。

还有在日志条目中显示扩展属性集合中的单个值吗?

【问题讨论】:

    标签: c# logging enterprise-library


    【解决方案1】:

    有几种方法可以做你想做的事。一种方法是自定义格式化程序(如您所述)。另一种选择是创建一个自定义LogEntry

    [System.Xml.Serialization.XmlRoot("paddedLogEntry")]
    [Serializable]
    public class PaddedLogEntry : LogEntry
    {
        public string PaddedSeverity
        {
            get
            {
                return this.Severity.ToString().PadRight(11);
            }
        }
    }
    
    LogWriter logger = new LogWriterFactory().Create();
    PaddedLogEntry logEntry1 = new PaddedLogEntry()
    {
        Message = "Testing 123...",
        Severity = System.Diagnostics.TraceEventType.Information
    };
    logEntry1.Categories.Add("General");
    logger.Write(logEntry1);
    

    使用模板字符串:{timestamp}|{property(PaddedSeverity)}|{message}

    除了创建自定义 LogEntry 之外,您还可以搭载 ExtendedProperties:

    LogEntry logEntry3 = new LogEntry()
    {
        Message = "Oops!",
        Severity = System.Diagnostics.TraceEventType.Error
    };
    logEntry3.Categories.Add("General");
    var extendedProperties = new Dictionary<string, object>();
    extendedProperties.Add("PaddedSeverity", logEntry3.Severity.ToString().PadRight(11));
    logEntry3.ExtendedProperties = extendedProperties;
    logger.Write(logEntry3);
    

    使用模板字符串:{timestamp}|{keyvalue(PaddedSeverity)}|{message}

    还有在日志条目中显示扩展属性集合中的单个值吗?

    答案是肯定的。在最后一个模板中,我将这种方法与 {keyvalue(PaddedSeverity)} 令牌一起使用。

    【讨论】:

    • 完美,谢谢我使用了扩展属性,它完成了这项工作。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    相关资源
    最近更新 更多