C# Framework用Log4写本地日志与uri值
本文版本Framework4.6.1 +log4 2.0.15+MVC5
Nuget安装
log4net
配套log4net.config,放App_Data下
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志路径,可以改为绝对路径D:\\Log\--> <param name= "File" value= "Logs\"/> <!--是否是向文件中追加日志--> <param name= "AppendToFile" value= "true"/> <!--log保留天数--> <param name= "MaxSizeRollBackups" value= "10"/> <!--日志文件名是否是固定不变的--> <param name= "StaticLogFileName" value= "false"/> <!--日志文件名格式为:2008-08-31.log--> <param name= "DatePattern" value= "yyyy-MM-dd".log""/> <!--日志根据日期滚动--> <param name= "RollingStyle" value= "Date"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %logger%newline" /> </layout> </appender> <!-- 控制台前台显示日志 --> <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender"> <mapping> <level value="ERROR" /> <foreColor value="Red, HighIntensity" /> </mapping> <mapping> <level value="Info" /> <foreColor value="Green" /> </mapping> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="Info" /> <param name="LevelMax" value="Fatal" /> </filter> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <appender-ref ref="ColoredConsoleAppender"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
写日志帮助类
TLLogHelper
/// <summary> /// 日志帮助类 /// </summary> public class TLLogHelper { //ILog log =TLLogHelper.InitLog4Net(typeof(NotifyController)); //log.Info("这是日志信息"); /// <summary> /// 获取日志 /// </summary> /// <param name="type"></param> /// <returns></returns> public static ILog InitLog4Net(Type type) { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\log4net.config"); XmlConfigurator.ConfigureAndWatch(logCfg); return LogManager.GetLogger(type); } }
使用
ILog log =TLLogHelper.InitLog4Net(typeof(WSPController));//随便一个类都可以 log.Info("这是日志信息");
部署别忘记配置文件与日志dll
Request内容,随机模拟了一个请求的日志
log.Info("Query:" + Request.RequestUri.Query);//?key=jjj&word=aaa log.Info("PathAndQuery:"+Request.RequestUri.PathAndQuery);///tlsc.api.admin/wsp/MyServiceEvent?key=jjj&word=aaa log.Info("ToString:" + Request.RequestUri.ToString());//http://域名/tlsc.api.admin/wsp/MyServiceEvent?key=jjj&word=aaa log.Info("Host:" + Request.RequestUri.Host);//rkph.t2l.ltd log.Info("LocalPath:" + Request.RequestUri.LocalPath);///tlsc.api.admin/wsp/MyServiceEvent log.Info("AbsolutePath:" + Request.RequestUri.AbsolutePath);///tlsc.api.admin/wsp/MyServiceEvent log.Info("AbsoluteUri:" + Request.RequestUri.AbsoluteUri);//http://域名/tlsc.api.admin/wsp/MyServiceEvent?key=jjj&word=aaa log.Info("RequestContent:"+Request.Content.ReadAsStringAsync().Result);//这里是请求内容,可以是任何文本