基础代码下载地址:https://github.com/zhangsai521314/StudyLog4net
1:按日期分隔日志
<configSections> <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <logger name="StudyLog4net"> <!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4netAppen下的配置--> <appender-ref ref="StudyLog4net_File" /> </logger> <!--按日期分割日志文件 一天一个--> <appender name=" StudyLog4net_File" type="log4net.Appender.RollingFileAppender,log4net"> <param name="File" value="log\ StudyLog4net_File\ StudyLog4net_File.log"/> <param name="AppendToFile" value="true"/> <param name="RollingStyle" value="Date"/> <param name="DatePattern" value="yyyy.MM.dd"/> <param name="StaticLogFileName" value="true"/> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d [%t] %-5p - %m%n"/> </layout> </appender> <root> <level value="All" /> <appender-ref ref="rollingFile"/> </root> </log4net> 说明: File——文件存放路径 AppendToFile—— 是否打开续写 RollingStyle——文件创建的方式 DatePattern——日期格式,当我们设置了RollingStyle 为Date方式后,Log4Net会自动使用DatePattern—— 中的日期格式来创建新的日志文件 StaticLogFileName——是否使用静态文件名 ConversionPattern——信息书写的布局样式设置 Level——日志记录的类型 rollingFile—
2:按日志大小分隔日志
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <logger name="StudyLog4net2"> <!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4net下的配置--> <appender-ref ref="StudyLog4net_Size" /> </logger> <!--按日志容量分割日志文件--> <appender name="StudyLog4net_Size" type="log4net.Appender.RollingFileAppender" > <param name="File" value="Log\StudyLog4net_Size\StudyLog4net_Size.log" /> <!--是否续写--> <param name="AppendToFile" value="true" /> <!--是否使用静态文件名--> <param name="StaticLogFileName" value="false" /> <!--按照文件的大小进行变换日志文件--> <param name="RollingStyle" value="Size" /> <!--单个文件最大容量 只有在 按Size分割时有效--> <param name="MaximumFileSize" value="10KB"/> <!--保留的log文件数量,超过此数量后,自动从最后的删除,按Size分割时有效--> <param name="MaxSizeRollBackups" value="2" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n" /> </layout> </appender> <root> <!--日志记录的类型--> <level value="All" /> <!--启用按容量分割--> <appender-ref ref="LogFileAppenderBySize" /> </root> </log4net>
3:将日志输出到数据库(SqlServer)
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <!--当时把日志插入到数据库的时候,必须有appender-ref。否则插不进去--> <logger name="sourec"> <appender-ref ref="ADONetAppender" /> </logger> <!--SQL数据库--> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <!--缓存区,值为1的时候并发插入的日志信息最完整--> <bufferSize value="1"/> <!-- SQL数据源--> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <!-- SQL连接字符串--> <connectionString value="data source=.;initial catalog=zhangsai;integrated security=False;persist security info=True;User ID=sa;Password=123456" /> <!--SQLServer插入语句--> <commandText value="INSERT INTO Log ([RecordTime],[LevelName],[Message],[Exception]) VALUES (@log_date, @log_level, @message, @exception)"/> <!--SQLServer创建数据库语句 create table Log ( [ID] int identity(1,1) primary key ,[RecordTime] datetime ,[LevelName] varchar(30) ,[Message] varchar(2000) ,[Exception] varchar(4000) )--> <!--日期--> <parameter> <parameterName value="@log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> </parameter> <!--日志级别--> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level"/> </layout> </parameter> <!--错误信息--> <parameter> <parameterName value="@exception"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.ExceptionLayout"/> </parameter> <!--日志信息--> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> </appender> <root> <!--日志记录的类型--> <level value="All" /> <!-- 启用保存到数据库--> <appender-ref ref="AdoNetAppender" /> </root> </log4net>
4:
1 <configSections> 2 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 3 </configSections> 4 <log4net> 5 <logger name="ConsoleAppender"> 6 <!--指定Log4.net第三个参数为StudyLog4net的则会执行ConsoleAppender下的配置--> 7 <appender-ref ref="ConsoleAppender" /> 8 </logger> 9 <!--定义输出到控制台命令行中--> 10 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 11 <layout type="log4net.Layout.PatternLayout"> 12 <conversionPattern value="%d [%t] %-5p - %m%n" /> 13 </layout> 14 </appender> 15 <root> 16 <!--日志记录的类型--> 17 <level value="All" /> 18 <!--控制台控制显示日志--> 19 <appender-ref ref="ConsoleAppender" /> 20 </root> 21 </log4net>
常见的日志书写格式说明:
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
Appender下的常用节点说明:
AdoNetAppender:利用ADO.NET记录到数据库的日志。
RollingFileAppender:将日志以回滚文件的形式写到文件中
ConsoleAppender:将日志输出到控制台。
FileAppender:将日志写到文件中。
AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
EventLogAppender:将日志写到Windows Event Log.
LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
MemoryAppender:将日志存到内存缓冲区。
NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
RemotingAppender:通过.NET Remoting将日志写到远程接收端。。
SmtpAppender:将日志写到邮件中。
TraceAppender:将日志写到.NET trace 系统。
UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
写文不易,转载请注明出处:http://www.cnblogs.com/zszs/p/5662603.html