【发布时间】:2013-01-25 01:22:20
【问题描述】:
我正在使用一个类库,其中每个类必须共享一个记录器类的单个实例。记录器不是我的,即它是我引用的 dll。共享是必要的,因为所有消息都必须附加到在实例化记录器时创建的单个日志消息文件的末尾。
我想过在实例化后通过引用传递记录器类,但这会导致一些非常丑陋的依赖关系。
我处于紧张状态,没有太多时间进行实验。关于实现这一目标的最佳方法的任何建议?我在想一个静态类可能是答案,但我承担的任何实现都需要一些时间,而且我不想走上死胡同。
======================== 更新===================
我认为这是处理这个问题的最快和最干净的方法:
public class Logger
{
private static LoggerTool _loggerTool;
public static void WriteLogMessage(string message)
{
if (_loggerTool == null)
{
// Create a new log file
string logFileName = "LogFile-" + DateTime.Now.ToString("HHmmss");
_loggerTool = new LoggerTool(logFileName);
}
_loggerTool.LogMessage(message);
}
}
【问题讨论】:
-
例如您使用的是什么类型的 Logger..
Log4Net..? -
在这里寻找一些好的例子stackoverflow.com/questions/6320393/…
-
如果你也创建了自己的 Logger,也请看这里stackoverflow.com/questions/6195084/…
-
Logger 是客户端的专有代码;我所拥有的只是一个可供参考的 dll。我必须使用它。
-
感谢大家的建议。凌晨做点事。我今天会测试它并发布结果