我正在写一个应用程序。我使用 NLog 进行日志记录。在这个应用程序中,几乎每个对象都可以写入日志。我为此定义了受保护的成员:
protected Logger logger;
protected virtual Logger Logger
{
get { return logger ?? (logger = LogManager.GetLogger(this.GetType().ToString())); }
}
在这种情况下,我需要为应用程序中的每个基类复制/粘贴此代码。或者我看到其他选项:定义应用程序特定的根对象,其中包含记录器并将其子类化。但从语义上讲,这听起来是错误的,因为对我来说这不是真正的“是”情况。
有没有更好的选择?