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 ...
随机推荐
- Java经典实例:使用ChoiceFormat来格式化复数
import java.text.ChoiceFormat; /** * Created by Frank */ public class FormatPuralsChoice extends For ...
- nginx性能优化之线程池
默认情况下,nginx的work process按照顺序一个个处理http请求,因此如果后台处理时间较长,则work process会长时间等待IO状态,因此限制并发性.如下所示: 所以,对于可能存在 ...
- .net字符串数组查找方式效率比较
下面是代码: static void Main(string[] args) { string[] arr = new string[] { "AAA", "BBBB&q ...
- java集合-hashCode
hashCode 的作用 在 Java 集合中有两类,一类是 List,一类是 Set 他们之间的区别就在于 List 集合中的元素师有序的,且可以重复,而 Set 集合中元素是无序不可重复的.对于 ...
- UML类图关系总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Compositio ...
- jQuery Tocify 定位导航
Tocify是一个jQuery插件,能够动态的生成文章目录,Tocify可以随意的设置Twitter Bootstrap 或者 jQueryUI Themeroller支持的可选动画和jQuery的显 ...
- imagesLoaded – 检测网页中的图片是否加载
imagesLoaded 是一个用于来检测网页中的图片是否载入完成的 JavaScript 工具库.支持回调的获取图片加载的进度,还可以绑定自定义事件.可以结合 jQuery.RequireJS 使用 ...
- 使用PDFCreate 和 Powershell 自动保存网页为PDF
先安装PDF Creator. http://rj.baidu.com/soft/detail/10500.html?ald 把他设置为默认打印机. 在IE中设置打印页面的边距,页眉页脚等. Powe ...
- 一个插件让你在chrome直接运行apk
插件的下载地址: https://chrome.google.com/webstore/detail/arc-welder/emfinbmielocnlhgmfkkmkngdoccbadn?utm_s ...
- Android引用本地aar
先建立一个lib工程,然后build出aar. 接着把aar放入要引入它的工程module的libs中. 在project的build.gradle中: repositories { flatDir ...