1.定义日志记录类

   1:   public class Log4NetLogger : ISystemLogger
   2:      {
   3:          static log4net.ILog securityLogger = log4net.LogManager.GetLogger("SecurityLog");
   4:          static log4net.ILog sysLogger = log4net.LogManager.GetLogger("SystemLog");
   5:   
   6:          public SystemLogLevel LogLevel
   7:          {
   8:              get
   9:              {
  10:                  if (ApplicationManager.SystemInfo.SystemLogLevel.HasValue)
  11:                  {
  12:                      return (SystemLogLevel)ApplicationManager.SystemInfo.SystemLogLevel;
  13:                  }
  14:                  else
  15:                  {
  16:                      return SystemLogLevel.None;
  17:                  }
  18:              }
  19:              set
  20:              {
  21:                  ApplicationManager.UpdateLogLevel(value);
  22:              }
  23:          }
  24:   
  25:          /// <summary>
  26:          /// 输出错误级别日志
  27:          /// </summary>
  28:          /// <param name="message">输出的消息</param>
  29:          public void Error(string message)
  30:          {
  31:              //记录日志
  32:              writeSysLog(SystemLogLevel.Error, message);
  33:          }
  34:   
  35:          /// <summary>
  36:          /// 输出警告级别日志
  37:          /// </summary>
  38:          /// <param name="message">输出的消息</param>
  39:          public void Warning(string message)
  40:          {
  41:              //记录日志
  42:              writeSysLog(SystemLogLevel.Warning, message);
  43:          }
  44:   
  45:          /// <summary>
  46:          /// 输出信息级别日志
  47:          /// </summary>
  48:          /// <param name="message">输出的消息</param>
  49:          public void Info(string message)
  50:          {
  51:              //记录日志
  52:              writeSysLog(SystemLogLevel.Info, message);
  53:          }
  54:   
  55:          /// <summary>
  56:          /// 输出调试级别日志
  57:          /// </summary>
  58:          /// <param name="message">输出的消息</param>
  59:          public void Debug(string message)
  60:          {
  61:              //记录日志
  62:              writeSysLog(SystemLogLevel.Debug, message);
  63:          }
  64:   
  65:          /// <summary>
  66:          /// 记录个资法案日志
  67:          /// </summary>
  68:          public void SecurityLog(string message)
  69:          {
  70:              writeSecurityLog(message);
  71:          }
  72:   
  73:          /// <summary>
  74:          /// 记录系统日志
  75:          /// </summary>
  76:          /// <param name="logLevel">日志级别</param>
  77:          /// <param name="message">输出的消息</param>
  78:          private void writeSysLog(SystemLogLevel logLevel, string message)
  79:          {
  80:              string format = "ClientIP={0},CurrentUser={1},Message={2}";
  81:              ClientInfo clientInfo = WebServerHelper.CurrentClientInfo;
  82:              string fullMsg = string.Format(format, clientInfo.UserHostAddress, WebServerHelper.CurrentUserID, message);
  83:              if (LogLevel >= logLevel)
  84:              {
  85:                  switch (logLevel)
  86:                  {
  87:                      case SystemLogLevel.Debug:
  88:                          sysLogger.Debug(fullMsg);
  89:                          break;
  90:                      case SystemLogLevel.Error:
  91:                          sysLogger.Error(fullMsg);
  92:                          break;
  93:                      case SystemLogLevel.Info:
  94:                          sysLogger.Info(fullMsg);
  95:                          break;
  96:                      case SystemLogLevel.Warning:
  97:                          sysLogger.Warn(fullMsg);
  98:                          break;
  99:                  }
 100:              }
 101:          }
 102:          /// <summary>
 103:          /// 记录个资法案日志
 104:          /// </summary>
 105:          /// <param name="message"></param>
 106:          private void writeSecurityLog(string message)
 107:          {
 108:              string format = "ClientIP={0},CurrentUser={1},System={2},Message={3}";
 109:              ClientInfo clientInfo = WebServerHelper.CurrentClientInfo;
 110:              string fullMsg = string.Format(format, clientInfo.UserHostAddress, WebServerHelper.CurrentUserID,ApplicationManager.SystemCode, message);
 111:              securityLogger.Info(fullMsg);
 112:          }
 113:      }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }2.设置配制文件:

   1:  <configSections>        
   2:          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
   3:  </configSections>
   4:  <log4net>
   5:          <appender name="SystemLogAppender" type="log4net.Appender.RollingFileAppender">
   6:              <file value="OA_Log/App_Log/" />
   7:              <appendToFile value="true" />
   8:              <rollingStyle value="Date" />
   9:              <staticLogFileName value="false" />
  10:              <datePattern value="yyyyMMdd&quot;.log&quot;" />
  11:              <layout type="log4net.Layout.PatternLayout">
  12:                  <!--输出格式-->
  13:                  <conversionPattern value="%date %-5level %message%newline" />
  14:              </layout>
  15:              <filter type="log4net.Filter.LoggerMatchFilter">
  16:                  <loggerToMatch value="SystemLog" />               
  17:              </filter>
  18:              <filter type="log4net.Filter.DenyAllFilter" />
  19:          </appender>
  20:          <appender name="SecurityLogAppender" type="log4net.Appender.RollingFileAppender">
  21:              <file value="OA_Log/Access_Log/" />
  22:              <appendToFile value="true" />
  23:              <rollingStyle value="Date" />
  24:              <staticLogFileName value="false" />
  25:              <datePattern value="yyyyMMdd&quot;.log&quot;" />
  26:              <layout type="log4net.Layout.PatternLayout">
  27:                  <!--输出格式-->
  28:                  <conversionPattern value="%date %-5level %message%newline" />
  29:              </layout>
  30:              <filter type="log4net.Filter.LoggerMatchFilter">
  31:                  <loggerToMatch value="SecurityLog" />               
  32:              </filter>
  33:              <filter type="log4net.Filter.DenyAllFilter" />
  34:          </appender>        
  35:          <root>
  36:              <level value="ALL"/>            
  37:              <appender-ref ref="SystemLogAppender"/>
  38:              <appender-ref ref="SecurityLogAppender"/>            
  39:          </root>       
  40:  </log4net>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

3.在Global.asax的Application_Start事件中加入初始化代码:

   1:   protected void Application_Start(object sender, EventArgs e)
   2:   {
   3:              log4net.Config.XmlConfigurator.Configure();         
   4:   }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Log4Net根据不同的Logger名称,生成日志文件到不同的地方。的更多相关文章

  1. 使用log4net生成日志文件

    (一)使用log4net生成日志文件   1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...

  2. logback.xml文件配置(按时间、文件大小和log名称生成日志)

    之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...

  3. (九)logback.xml文件配置(按时间、文件大小和log名称生成日志)

    原文链接:https://www.cnblogs.com/hhhshct/p/9084036.html rollingPolicy 设置:<rollingPolicy class="c ...

  4. log4j自动生成日志文件配置

    生成文件到默认位置: #生成日志文件 #log4j.appender.systemFile=org.apache.log4j.RollingFileAppender #按天生成 log4j.appen ...

  5. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  6. 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

    原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...

  7. Flask log配置,实现按照日期自动生成日志文件

    Flask自带了logger模块,用来方便程序员群众记录日志,这里粘贴出来的是一段代码,用来初始化日志各项配置参数,并根据日期自动生成日志文件. #log配置,实现日志自动按日期生成日志文件def m ...

  8. NGINX按天生成日志文件的简易配置

    NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的 ...

  9. (一)使用log4net生成日志文件

    1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...

随机推荐

  1. Visual Studio Code 使用 ESLint 增强代码风格检查

    前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...

  2. GifShot - 创建动态 GIF 的 JavaScript 库

    GifShot 是一个可以创建流媒体,视频或图像的 GIF 动画的 JavaScript 库.该库的客户端特性使其非常便携,易于集成到几乎任何网站.利用最先进的浏览器 API ,包括 WebRTC , ...

  3. 25佳漂亮的结婚邀请 & 婚礼请柬网站设计

    互联网给我们的生活带来了巨大的变化,越来越多的事情可以通过网络完成.下面向大家分享一组结婚邀请网站以及婚礼请柬网站的设计案例,如果你也正想制作这样的网站,相信这些优秀案例能够带给你很大的帮助. 您可能 ...

  4. 基于jPlayer的三分屏制作

    三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer, ...

  5. spring(4)——自动装配

    set注入和构造注入有时在做配置时比较麻烦.所以框架为了提高开发效率,提供自动装配功能,简化配置.spring框架式默认不支持自动装配的,要想使用自动装配需要修改spring配置文件中<bean ...

  6. JavaScript语言精粹学习笔记

    0.JavaScript的简单数据类型包括数字.字符创.布尔值(true/false).null和undefined值,其它值都是对象. 1.JavaScript只有一个数字类型,它在内部被表示为64 ...

  7. iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解

    写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教程,于是待问题解决后抽时间截了图,自己写一遍封存在博客园中以便以后随时查阅. charles又名青花瓷,在iOS ...

  8. PHP学习之输出语句、注释、算数运算符

    今天学习了PHP的输出语句:

  9. Java中"\t"表示几个空格

    \t是补全当前字符串长度到8的整数倍,最少1个最多8个空格补多少要看你\t前字符串长度 测试程序: 测试结果: 总结:运行到“\t”时,判断当前字符串长度,将当前字符串长度补到8的倍数(不包括0).

  10. run() 和 start() 的区别

    1) start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面(指主线程下面)的代码.通过调用Thread类的start()方法来启动一个 ...