我正在处理日志文件,并且我有一个方法正在创建一个通用条目到日志中。通用日志条目如下所示:从方法内向字符串中间添加其他内容
public StringBuilder GetLogMessage(LogEventType logType, object message)
{
StringBuilder logEntry = new StringBuilder();
logEntry.AppendFormat("DATE={0} ", DateTime.Now.ToString("dd-MMM-yyyy", new CultureInfo(CommonConfig.EnglishCultureCode)));
logEntry.AppendFormat("TIME={0} ", DateTime.Now.ToString("HH:mm:ss", new CultureInfo(CommonConfig.EnglishCultureCode)));
logEntry.AppendFormat("ERRORNO={0} ", base.RemoteIPAddress.ToString().Replace(".", string.Empty));
logEntry.AppendFormat("IP={0}", base.RemoteIPAddress.ToString());
logEntry.AppendFormat("LANG={0} ", base.Culture.TwoLetterISOLanguageName);
logEntry.AppendFormat("PNR={0} ", this.RecordLocator);
logEntry.AppendFormat("AGENT={0} ", base.UserAgent);
logEntry.AppendFormat("REF={0} ", base.Referrer);
logEntry.AppendFormat("SID={0} ", base.CurrentContext.Session.SessionID);
logEntry.AppendFormat("LOGTYPE={0} ", logType.ToString());
logEntry.AppendFormat("MESSAGE={0} ", message);
return logEntry;
}
在“MESSAGE =”之前添加其他参数的最佳方法是什么?例如,如果我想在GetLogMessage运行时从派生类中添加“MODULE =”。一个委托人会成为我正在寻找的东西,还是将该方法标记为虚拟并覆盖它,还是需要完全不同的东西?
任何帮助,将不胜感激。
+1我喜欢你的答案比我的好,因为它现在允许添加多个自定义消息,而不需要像我写的方法(假设OP没有标准的日志消息格式) – Sunny 2010-04-08 11:21:15
我非常喜欢这种方法。允许更好地维护消息格式。谢谢! – 2010-04-08 11:25:36