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. 高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...

  2. 【HTML5】浅析html使用SSE(Server-Sent Events)连接JSP

    目录结构: // contents structure [-] 关于SSE的一些话 什么是SSE SSE的浏览器支持情况 SSE的工作机制 使用SSE连接JSP文件 HTMl页面 服务器端 错误 错误 ...

  3. mvc model 传值两种方式区别

    1: controller中: public actionresult index() { M m=new M(); return view(m) } view中: @model.phone vs 中 ...

  4. sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)

    接着上面的图片调查,sharepoint自带的问卷调查是没有开始和结束时间的.这个在项目过程不太实用.问卷一般有开始和结束时间的.因此需要自己 动手开发一个自定义字段类型字段.如下图: 开发添加栏目会 ...

  5. Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  6. 动画效果 View控件的显示和隐藏效果

    显示动画: mShowAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f,     Animation.RELATIVE_ ...

  7. iOS--页面跳转(UITableView)

    本文只要实现运用(UITableView)表格实现页面的传值,同时运用了代理(委托)传值. 目录文件列表如下: AddressBookViewController.h #import <UIKi ...

  8. sql 2012 sequence 速记

    CodeSELECT id INTO #t1 FROM sys_id WHERE id < 3 SELECT next value for sequencebase FROM #t1 DROP ...

  9. js 使某个页面不允许在子iframe中打开的解决办法

    在页面中添加如下js代码<script> if (window.parent !== window.self) { window.parent.location.reload(); }&l ...

  10. HTML5气泡悬浮框(已经加上完整文件)

    源文件链接:http://pan.baidu.com/s/1pKHlNSn 设计气泡悬浮框 1.在网页设计中,气泡悬浮框常常用于页面中为某些对象显示提示信息,恰当地使用气泡悬浮框能够使网页布局更加完美 ...