城堡日志记录器和延迟加载函数
本文关键字:string 函数 延迟加载 日志 记录器 城堡 | 更新日期: 2023-09-27 18:10:27
所以我使用城堡内置的日志支持,并选择利用NLog。
所以我已经用NLog做了一些阅读,似乎以前你总是想把任何日志消息包装在if块中,通过不计算消息的值来提高性能,除非它确实需要。我明白了,虽然很丑,但还是有意义的。
if (Logger.IsInfoEnabled)
{
Logger.InfoFormat
(
"some info message with a process running for dates of {0} to {1}",
fromDate.ToString("MM/dd/yyyy"),
toDate.ToString("MM/dd/yyyy")
);
}
我注意到Logger。Info有一个重载函数(Func)"懒加载"。太好了,现在我不需要到处都有这些if块了=]
问题是(我还在适应Func[ing]所以别对我太苛刻)这个调用是传递给延迟加载函数还是作为字符串发送?
Logger.Info
(string.Format(
"some info message with a process running for dates of {0} to {1}",
fromDate.ToString("MM/dd/yyyy"),
toDate.ToString("MM/dd/yyyy")
));
您的代码缺少一些括号,使其成为Func
Logger.Info(() =>
string.Format(
"Check Pam Calendar for holidays for date range {0} to {1}",
fromDate.ToString("MM/dd/yyyy"),
toDate.ToString("MM/dd/yyyy")
));
这是编写代码的正确方式- string.Format
方法只会在Logger
要记录字符串时被调用