c# - 在静态类中配置静态 StreamWriter
问题描述
Logger.WriteLine("Hello World")
我有以下记录器类,它将彩色消息打印到控制台中,并在每次调用时将它们写入文件(log.txt) 。
如果您想知道_locker
,那只是因为多线程弄乱了控制台颜色,因为Console.ForegroundColor
它是全局设置的。
由于我的类是静态的,我不太确定是否和/或何时应该Close()
使用Dispose()
静态 StreamWriter 对象,因为最终它是静态的,它不应该真正产生任何影响,但我觉得那是不正确的。
意见?
/// <summary>
/// Logger class.
/// </summary>
public static class Logger
{
private static readonly object _locker = new object();
private static readonly StreamWriter _sw = new StreamWriter("log.txt");
public static void WriteLine(string message, ConsoleColor color = ConsoleColor.Gray)
{
lock (_locker)
{
Console.ForegroundColor = color;
Console.WriteLine(message);
Console.ResetColor();
}
_sw.WriteLine(message);
_sw.Flush();
}
}
解决方案
推荐阅读
- json - 在同一个ansible剧本中将json字符串从ansible输出传递给python
- java - 尝试用 0 空格替换正则表达式字符串
- html - 当 css 包含“body { ... }”规则时,Windows 10 上的 Internet Explorer 会加载 css 两次
- nlp - IBM Watson Assistant:当我在意图训练问题中使用@entity 时,watson 不会平等对待所有实体值
- node.js - 将 var 服务器传递给另一个 nodejs 模块
- google-chrome - 二级域中特殊字符的编码是什么?
- javascript - NodeJS CSVReader - 带有 csv-parse 的 createReadStream 返回空数组
- c# - 如何限制列表的大小并使用新值循环 FIFO?
- c# - 使用 XamlReader.Load 反序列化后 UI 上缺少值
- java - 为什么我的 Android 应用没有扫描蓝牙设备?