log4net和一般的记录日志方法
下载
http://files.cnblogs.com/crazyair/log4net.zip
1 在web项目中新建一个 Log4Net.config
<?xml version="1.0" encoding="utf-8"?> <!-- 注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的 “网站”->“Asp.Net 配置”选项。 设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 /Windows/Microsoft.Net/Framework/v2.x/Config 中 --> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <logger name="ikangdentalLog"> <!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL" /> <appender-ref ref="SmtpAppenderAX"></appender-ref> <appender-ref ref="FileAppenderAX"></appender-ref> </logger> <appender name="SmtpAppenderAX" type="log4net.Appender.SmtpAppender"> <to value="[email protected]"></to> <from value="[email protected]" /> <subject value="AX‘Test Log Message" /> <smtpHost value="mail.eshinfo.com" /> <username value="eshinfo" /> <password value="eshinfo" /> <bufferSize value="2048" /> <!--超长部分是否丢弃--> <lossy value="false" /> <!--输出级别在WARN和OFF之间的日志--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="WARN" /> <param name="LevelMax" value="OFF" /> </filter> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] : % newline%message%newline" /> </layout> </appender> <appender name="FileAppenderAX" type="log4net.Appender.RollingFileAppender"> <!--绝对路径--> <file value="D://AX.txt"></file> <!--相对路径,在项目的根目录下--> <!--以最后一个路径为准,所以上面的绝对路径下不会写日志--> <file value="./Log/AX.txt"></file> <!--按照当天记录--> <appendToFile value="true" /> <rollingStyle value="Date" /> <!--<datePattern value="yyyyMMdd-HHmm" />--> <datePattern value="yyyyMMdd" /> <!--防止多线程时不能写Log,官方说线程非安全--> <!--实际使用时,本地测试正常,部署后有不能写日志的情况--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <appendToFile value="true" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="composite" /> <!--日志最大个数,都是最新的--> <!--rollingStyle节点为Date时,该节点不起作用--> <!--rollingStyle节点为Size时,只能有value个日志--> <!--rollingStyle节点为Composite时,每天有value个日志--> <maxSizeRollBackups value="10" /> <!--当备份文件时,为文件名加的后缀--> <!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug--> <!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT--> <datePattern value="_yyyy-MM-dd.TXT" /> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="1MB" /> <!--置为true,当前最新日志文件名永远为file节中的名字--> <staticLogFileName value="true" /> <!--输出级别在INFO和ERROR之间的日志--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="ERROR" /> </filter> <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出--> <filter type="log4net.Filter.LevelMatchFilter"> <param name="LevelToMatch" value="WARN" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> </layout> </appender> </log4net> </configuration>
类库 common 中AssemblyInfo.cs 中加入
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
新建一个类
public class Log { private static log4net.ILog log = log4net.LogManager.GetLogger("ikangdentalLog"); public static void Debug(string message) { if (log.IsDebugEnabled) { log.Debug(message); } } public static void Debug(System.Exception ex1) { if (log.IsDebugEnabled) { log.Debug(ex1.Message.ToString() + "/r/n" + ex1.Source.ToString() + "/r/n" + ex1.TargetSite.ToString() + "/r/n" + ex1.StackTrace.ToString()); } } public static void Error(string message) { if (log.IsErrorEnabled) { log.Error(message); } } public static void Fatal(string message) { if (log.IsFatalEnabled) { log.Fatal(message); } } public static void Info(string message) { if (log.IsInfoEnabled) { log.Info(message); } } public static void Warn(string message) { if (log.IsWarnEnabled) { log.Warn(message); } } }
引用 log4net
用的时候 Common.Log.Info("1111");
2 一种简单的记录日志的
public class Log { /// <summary> /// 写日志(用于跟踪) /// </summary> public static void WriteLog(string strMemo) { string filename = HttpContext.Current.Request.PhysicalApplicationPath; //保存的路径 string time = DateTime.Now.ToString("yyyy-MM-dd"); filename = filename + "/Log/" + " " + "" + time + ".txt"; StreamWriter sr = null; try { if (!File.Exists(filename)) { sr = File.CreateText(filename); } else { sr = File.AppendText(filename); } sr.WriteLine(strMemo); } catch { } finally { if (sr != null) sr.Close(); } } }
用的时候 Log.WriteLog("XXX");
下载 http://files.cnblogs.com/crazyair/log4net.zip
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。