<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
web.config
<log4net>
<root>
<appender-ref ref="fzf_callservices_logs" />
</root>
<appender name="fzf_callservices_logs" type="log4net.Appender.RollingFileAppender">
<file value="logs/fzf_callservices_log.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
</log4net>
Helper类
using System;
using log4net;
using System.IO;
using Newtonsoft.Json;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace FZFWebUI2._0.Common
{
public class LogHelper
{
private ILog logger;
public LogHelper(ILog log)
{
this.logger = log;
}
public void Info(object message)
{
this.logger.Info(message);
}
public void Info(object message, Exception e)
{
this.logger.Info(message, e);
}
public void Debug(object message)
{
this.logger.Debug(message);
}
public void Debug(object message, Exception e)
{
this.logger.Debug(message, e);
}
public void Warming(object message)
{
this.logger.Warn(message);
}
public void Warming(object message, Exception e)
{
this.logger.Warn(message, e);
}
public void Error(object message)
{
this.logger.Error(message);
}
public void Error(object message, Exception e)
{
this.logger.Error(message, e);
}
public void Fatal(object message)
{
this.logger.Fatal(message);
}
public void Fatal(object message, Exception e)
{
this.logger.Fatal(message, e);
}
public string ConvertJsonString(string str)
{
//格式化json字符串
try
{
Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
TextReader tr = new StringReader(str);
JsonTextReader jtr = new JsonTextReader(tr);
object obj = serializer.Deserialize(jtr);
if (obj != null)
{
StringWriter textWriter = new StringWriter();
JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
{
Formatting = Formatting.Indented,
Indentation = 4,
IndentChar = ' '
};
serializer.Serialize(jsonWriter, obj);
return textWriter.ToString();
}
else
{
return str;
}
}
catch
{
return str;
}
}
}
public class LogFactory
{
static LogFactory()
{
}
public static LogHelper GetLogger(Type type)
{
return new LogHelper(LogManager.GetLogger(type));
}
public static LogHelper GetLogger(string str)
{
return new LogHelper(LogManager.GetLogger(str));
}
}
}
代码调用
//记录调试日志 将web.config中<!--<appender-ref ref="fzf_callservices_logs" />-->注释即为关闭调试模式
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
string name = st.GetFrame(1).GetMethod().DeclaringType.FullName;
log = LogFactory.GetLogger(name);
string formatstr = log.ConvertJsonString(tempString);
string formatpar = log.ConvertJsonString(Parameter);
log.Debug("\n" + "【" + ServiceCode + "】" + "Parameters:" + "\n" + formatpar + "\n" + "【" + ServiceCode + "】" + "Result:" + "\n" + formatstr);