Log4Net根据不同的Logger名称,生成日志文件到不同的地方。
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".log"" />
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".log"" />
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名称,生成日志文件到不同的地方。的更多相关文章
- 使用log4net生成日志文件
(一)使用log4net生成日志文件 1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...
- logback.xml文件配置(按时间、文件大小和log名称生成日志)
之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...
- (九)logback.xml文件配置(按时间、文件大小和log名称生成日志)
原文链接:https://www.cnblogs.com/hhhshct/p/9084036.html rollingPolicy 设置:<rollingPolicy class="c ...
- log4j自动生成日志文件配置
生成文件到默认位置: #生成日志文件 #log4j.appender.systemFile=org.apache.log4j.RollingFileAppender #按天生成 log4j.appen ...
- SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出
写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...
- 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割
原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...
- Flask log配置,实现按照日期自动生成日志文件
Flask自带了logger模块,用来方便程序员群众记录日志,这里粘贴出来的是一段代码,用来初始化日志各项配置参数,并根据日期自动生成日志文件. #log配置,实现日志自动按日期生成日志文件def m ...
- NGINX按天生成日志文件的简易配置
NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的 ...
- (一)使用log4net生成日志文件
1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...
随机推荐
- GJM: Unity3D基于Socket通讯例子 [转载]
首先创建一个C# 控制台应用程序, 直接服务器端代码丢进去,然后再到Unity 里面建立一个工程,把客户端代码挂到相机上,运行服务端,再运行客户端. 高手勿喷!~! 完全源码已经奉上,大家开始研究吧! ...
- 简单的Writer和Reader
Writer用于写出去到文件中,Reader用于将外面的文件读进来控制台 Writer和Reader有许多子类,但是子类大多都是直接运用父类Writer和Reader的方法,而且Writer和Read ...
- 01Mybatis_课程安排
课程安排: mybatis和springmvc通过订单商品 案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理 (掌握) m ...
- web桌面程序之锁屏功能分析
这是一个在操作系统里比较常见的功能,但在web里实现,有哪些需要注意的呢? 1.如何真正的实现锁屏? 2.如何避免通过技术手段绕过锁屏? 我个人总结出2点需要特别注意的地方,下面就分别进行分析. 第一 ...
- Dense.js - 响应式的视网膜(Rtina)图像支持
Dense 是一款 jQuery 插件,它提供一个简单的方法为设备提供精密像素比的图像,为你的网站带来视网膜支持,清除模糊,图像更清晰.通过简单地包括 jQuery 插件的页面上,就能实现响应式的视网 ...
- 带你秒学JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理.是静态网页转变为动态的 ...
- AdaBoost
一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单"听取多人意见,最后综合决策",但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学 ...
- SharePoint 2013 JavaScript API 记录
1.获取创建者字段(Author),oListItem为SPListItem对象 oListItem.get_item('Author')只能获取到对象,获取用户名要用oListItem.get_it ...
- 使用Reaver对WPS加密网络进行暴力破解
WPS状态探测 探测开启了WPS功能的AP,WPS Locked状态为NO的表示开启了WPS功能. wash -i wlan0mon PIN码获取 reaver -i wlan0mon -b MAC地 ...
- 不直接登录SharePoint服务器,通过远程直接部署WSP解决方案包
在这之前不得不说一下Sysinternals,他最初是一个网站,网站上会经常发布一些有用的系统扩展工具,之后运营这个网站的公司被微软收购.像非常著名的Procmon,AutoRuns.Process ...