- A+
所属分类:Log4Net
安装Log4Net
- Install-Package Log4Net
在Web项目根目录下创建log4net.config配置文件
- //配置文件log4new.config XML代码如下:
- <?xml version="1.0" encoding="utf-8" ?>
- <log4net debug="false">
- <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
- <param name="File" value="Log/AT.log"/>
- <param name="datePattern" value="YY-MM-dd HH:mm"/>
- <param name="AppendToFile" value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
- </layout>
- </appender>
- <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
- </layout>
- </appender>
- <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
- </layout>
- </appender>
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="log\AT"/>
- <appendToFile value="true"/>
- <rollingStyle value="Date"/>
- <datePattern value="_yyyyMMdd'.log'"/>
- <staticLogFileName value="false"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%d [%t] %-5p %c - %m%n"/>
- </layout>
- </appender>
- <root>
- <level value="INFO"/>
- <!--<level value="ERROR" />-->
- <appender-ref ref="RollingLogFileAppender"/>
- </root>
- </log4net>
项目中添加一个LogHelper.cs操作类
- //LogHelper.cs类代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- [assembly: log4net.Config.XmlConfigurator(Watch = true)]
- namespace CQICC.Models
- {
- public class LogHelper
- {
- /// <summary>
- /// 输出日志到Log4Net
- /// </summary>
- /// <param name="t"></param>
- /// <param name="ex"></param>
- #region static void WriteLog(Type t, Exception ex)
- public static void WriteLog(Type t, Exception ex)
- {
- log4net.ILog log = log4net.LogManager.GetLogger(t);
- log.Error("Error", ex);
- }
- #endregion
- /// <summary>
- /// 输出日志到Log4Net
- /// </summary>
- /// <param name="t"></param>
- /// <param name="msg"></param>
- #region static void WriteLog(Type t, string msg)
- public static void WriteLog(Type t, string msg)
- {
- log4net.ILog log = log4net.LogManager.GetLogger(t);
- log.Error(msg);
- }
- #endregion
- }
- }
修改全局应用程序类Global.asax
- protected void Application_Start()
- {
- AreaRegistration.RegisterAllAreas();
- RouteConfig.RegisterRoutes(RouteTable.Routes);
- //应用程序启动时,自动加载配置log4Net
- XmlConfigurator.Configure();
- }
打开Web.config文件,添加如下配置信息
- //配置文件代码如下:
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
- </configSections>
- <log4net configSource="log4net.config"/>
- <system.web>
- <httpModules>
- <!--重写IHttpModule类,需要配置的信息-->
- </httpModules>
- <compilation debug="true" targetFramework="4.0" />
- </system.web>
- </configuration>
项目中添加一个SendMail.cs操作类
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Mail;
- using System.Text;
- using System.Web;
- namespace CQICC.Models
- {
- public class SendMail
- {
- /// <summary>
- /// 发送邮件
- /// </summary>
- /// <param name="mailTo">要发送的邮箱</param>
- /// <param name="mailSubject">邮箱主题</param>
- /// <param name="mailContent">邮箱内容</param>
- /// <returns>返回发送邮箱的结果</returns>
- public static bool SendEmail(string mailTo, string mailSubject, string mailContent)
- {
- // 设置发送方的邮件信息,例如使用网易的smtp
- string smtpServer = "smtp.ym.163.com"; //SMTP服务器
- string mailFrom = "error@163.com"; //登陆用户名
- string userPassword = "******";//登陆密码
- // 邮件服务设置
- SmtpClient smtpClient = new SmtpClient();
- smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
- smtpClient.Host = smtpServer; //指定SMTP服务器
- smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码
- // 发送邮件设置
- MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人
- mailMessage.Subject = mailSubject;//主题
- mailMessage.Body = mailContent;//内容
- mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
- mailMessage.IsBodyHtml = true;//设置为HTML格式
- mailMessage.Priority = MailPriority.Low;//优先级
- try
- {
- smtpClient.Send(mailMessage); // 发送邮件
- return true;
- }
- catch (SmtpException ex)
- {
- return false;
- }
- }
- }
- }
Controller调用
- try {
- //try
- }
- catch (Exception e)
- {
- //记录错误日志
- LogHelper.WriteLog(typeof(XXXController), e);
- //发送错误日志到Email
- SendMail.SendEmail("error@163com", typeof(XXXController) + "程序异常反馈", typeof(XXXController) + "\n" + "错误信息:" + e);
- }
2017年7月2日 下午3:38 沙发
抱着学习的态度来看看