下面是我的配置文件和代码,总觉得还有可复用的写法,请大家指点!
StackFrame sf = new StackFrame(1);
msg = string.Format("{0}.{1}:{2}", sf.GetMethod().ReflectedType.FullName, sf.GetMethod().Name, msg);
上面两句是用来获取调用者的信息,就是由哪个类的哪个方法发起的调用。
如果LogDemo工程下,Program类中的Main方法调用了Log.cs中的Error方法,则msg=LogDemo.Program.Main。
log4net.config
这个配置文件中有多线程并发的配置,有自定义日志名称配置,同时也有自定义目录配置
请注意配置文件中的datePattern节点的配置格式,根据此配置可以按天,半天,小时,分钟等生成单个日志文件。同时也可以按日期(或者月份生成文件夹)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.2" />
</configSections>
<log4net debug="false">
<logger name="Log">
<level value="INFO" />
</logger>
<logger name="logdebug">
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<logger name="logwarn">
<level value="WARN" />
<appender-ref ref="WarnAppender" />
</logger>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>