c# - 格式化跟踪输出

我正在使用 TextWriterTraceListener 将诊断消息记录到文本文件中。但是,我也不想记录添加的每条跟踪消息的时间戳。是否可以为监听器定义一种自动添加时间戳的格式化程序?

目前我在每个 Trace.WriteLine() 调用上手动添加时间戳,但这不是很舒服。

最佳答案

我建议你使用 Log4Net相反,它具有更多的可定制性。

或者,您可以编写自己的 TraceListener 实现来为您设置时间戳。您可能甚至可以从 TextWriterTraceListener 派生并覆盖 WriteWriteLine:

public override void Write(string x)
{
     // Use whatever format you want here...
     base.Write(string.Format("{0:r}: {1}", DateTime.UtcNow, x));
}

public override void WriteLine(string x)
{
     // Use whatever format you want here...
     base.WriteLine(string.Format("{0:r}: {1}", DateTime.UtcNow, x));
}

如注释中所述,这会导致 TraceInformation 的日期重复,因为这会调用 Write 两次。使用“正确”的日志框架肯定会更好。

https://stackoverflow.com/questions/1171670/

相关文章:

linux - 使用 *nix 中的 column 命令格式化列表

ide - 保存文件时禁用重新格式化代码

formatting - printf, sprintf 至少打印两位小数

java - 内置字符串格式与字符串连接作为日志记录参数

postgresql - 如何为 PostgreSQL 设置千位分隔符?

javascript - 如何更改 winston 日志格式?

python - !r 在 str() 和 repr() 中做了什么?

formatting - Fortran 中带有前导零的格式化输出

php - 如何创建友好的日期格式(例如 "submitted 2 days ago")

javascript - 在格式化数字输入时验证数字输入