private void WriteToLog(LogLevel level, Exception e, string message, params object[] args)
{
//暂时先这样处理,保证log2console能够看到异常信息
StringBuilder log = new StringBuilder();
if (null != e)
{
log.AppendFormat("{0},{1}", e.Message, e.StackTrace);
log.AppendLine();
if (null != e.InnerException)
{
log.AppendFormat("InnerException {0},{1}", e.InnerException.Message, e.InnerException.StackTrace);
log.AppendLine();
}
}
if (null != args && args.Length == 0)
{
log.Append(message);
}
else
{
log.AppendFormat(message, args);
}
LogEventInfo logEvent = new LogEventInfo(level, this.Log.Name, null, log.ToString(), null, null);
foreach (KeyValuePair<string, object> de in this.Properties)
{
if (de.Key != null && de.Value != null)
{
logEvent.Properties[de.Key] = de.Value;
}
}
//清除ErrNo信息,屏蔽trace或老日志显示在系统操作日志中
logEvent.Properties.Remove("errno");
/*以下屏蔽语句直接决定R1方式的日志是否可用*/
this.Log.Log(logEvent);
}