Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在企业库记录器中填充严重性级别字段_C#_Logging_Enterprise Library - Fatal编程技术网

C# 在企业库记录器中填充严重性级别字段

C# 在企业库记录器中填充严重性级别字段,c#,logging,enterprise-library,C#,Logging,Enterprise Library,我正试图找到一种在EnterpriseLogger库文本格式化程序中填充字段的方法 我的日志文件条目的当前格式如下: 02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.946|Error|Test Error Message 02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.

我正试图找到一种在EnterpriseLogger库文本格式化程序中填充字段的方法

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

02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.946|Error|Test Error Message 02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.946|Error |Test Error Message 2015年1月2日15:36:43.946 |信息|测试信息消息 2015年1月2日15:36:43.946 |错误|测试错误消息 但是,为了便于在基于文本的查看器(如记事本)中阅读,我希望它们的格式如下:

02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.946|Error|Test Error Message 02/01/2015 15:36:43.946|Information|Test Information Message 02/01/2015 15:36:43.946|Error |Test Error Message 2015年1月2日15:36:43.946 |信息|测试信息消息 2015年1月2日15:36:43.946 |错误|测试错误消息 这是可以在令牌配置中实现的,还是需要自定义格式化程序?如果需要,是否有好的示例可以为我尝试实现的目标提供起点


是否仍可以在日志条目中显示扩展属性集合中的单个值?

有几种方法可以实现您想要的功能。一种方法是自定义格式化程序(如您所述)。另一个选项是创建自定义的
日志条目

[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}

您也可以借助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);
LogEntry logEntry3=newlogentry()
{
Message=“Oops!”,
严重性=System.Diagnostics.TraceeEventType.Error
};
日志3.类别。添加(“一般”);
var extendedProperties=new Dictionary();
Add(“PaddedSeverity”,logEntry3.Severity.ToString().PadRight(11));
logEntry3.ExtendedProperties=ExtendedProperties;
logger.Write(logEntry3);
使用模板字符串:
{timestamp}{keyvalue(PaddedSeverity)}{message}

另外,是否可以在日志条目中显示扩展属性集合中的单个值


答案是肯定的。在上一个模板中,我对
{keyvalue(PaddedSeverity)}
标记使用了这种方法。

非常好,感谢我使用了一个扩展属性,它完成了任务。