log4net

  1 配置文件   app.config
  2 
  3 <?xml version="1.0" encoding="utf-8" ?>
  4 <configuration>
  5 
  6 <!-- Register a section handler for the log4net section -->
  7 <configSections>
  8 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  9 </configSections>
 10 <log4net>
 11 <!-- Define some output appenders -->
 12 
 13 <!--定义输出到文件中-->/////////////////////////////////////////////////////////
 14 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
 15 <!--定义文件存放位置-->
 16 <file value="log\"/>
 17 <appendToFile value="true"/>
 18 <rollingStyle value="Date"/>
 19 <datePattern value="yyyyMM\yyyyMMdd'.txt'"/>
 20 <staticLogFileName value="false"/>
 21 <param name="MaxSizeRollBackups" value="100"/>
 22 <layout type="log4net.Layout.PatternLayout">
 23 <!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; : %newline%message%newline%newline" />-->
 24 <conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
 25 </layout>
 26 </appender>
 27 
 28 <!--Sql server Appender -->//////////////////////////////////////////////////////////////////////////////////////////
 29 <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.ADONetAppender">
 30 <!--bufferSize 为缓冲区大小,只有日志记录超设定值才会一块写入到数据库 -->
 31 <!-- 注意bufferSize 参数在测试环境建议设置为 0 ,在生产环境建议设置为100 -->
 32 <bufferSize value="0" />
 33 <!--访问数据库驱动的引用-->
 34 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 35 <!--数据库连接字符串-->
 36 <connectionString value="server=.;database=Log4Net;uid=sa;password=123.com;"/>
 37 <!--数据库执行的Sql语句-->
 38 <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
 39 <!-- 日志记录时间,RawTimeStampLayout为默认的时间输出格式 -->
 40 <parameter>
 41 <parameterName value="@log_date" />
 42 <dbType value="DateTime" />
 43 <layout type="log4net.Layout.RawTimeStampLayout" />
 44 </parameter>
 45 <!--线程号-->
 46 <parameter>
 47 <parameterName value="@thread" />
 48 <dbType value="String" />
 49 <size value="255" />
 50 <layout type="log4net.Layout.PatternLayout">
 51 <conversionPattern value="%thread" />
 52 </layout>
 53 </parameter>
 54 <!--日志等级 级别从低到高分别是:debug(调试),info(信息),warn(警告),error(错误),fatal(致命错误)-->
 55 <parameter>
 56 <parameterName value="@log_level" />
 57 <dbType value="String" />
 58 <size value="50" />
 59 <layout type="log4net.Layout.PatternLayout">
 60 <conversionPattern value="%level" />
 61 </layout>
 62 </parameter>
 63 <!--产生日志的类-->
 64 <parameter>
 65 <parameterName value="@logger" />
 66 <dbType value="String" />
 67 <size value="255" />
 68 <layout type="log4net.Layout.PatternLayout">
 69 <conversionPattern value="%logger" />
 70 </layout>
 71 </parameter>
 72 <!---->
 73 <parameter>
 74 <parameterName value="@message" />
 75 <dbType value="String" />
 76 <size value="4000" />
 77 <layout type="log4net.Layout.PatternLayout">
 78 <conversionPattern value="%message" />
 79 </layout>
 80 </parameter>
 81 <parameter>
 82 <parameterName value="@exception" />
 83 <dbType value="String" />
 84 <size value="2000" />
 85 <layout type="log4net.Layout.ExceptionLayout" />
 86 </parameter>
 87 </appender>
 88 
 89 <!-- Setup the root category, add the appenders and set the default level -->
 90 <root>
 91 <level value="ALL" />
 92 <appender-ref ref="RollingLogFileAppender" />
 93 <appender-ref ref="AdoNetAppender_SqlServer" />
 94 </root>
 95 
 96 </log4net>
 97 </configuration>
 98 
 99  
100 
101  
102 
103  
104 
105 /////////////////////////////////////////////////////////////////////////////////////////
106 
107 form1 的代码
108 
109 using log4net;
110 using System;
111 using System.Collections.Generic;
112 using System.Linq;
113 using System.Text;
114 using System.Threading.Tasks;
115 
116 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Content/Config/Log4Net.config", Watch = true)]//////////////ConfigFile = "Content/Config/Log4Net.config" 意思是配置文件的目录
117 namespace Com.No1.Log4Net.SqlServer
118 {
119 class Program
120 {
121 protected static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
122 static void Main(string[] args)
123 {
124 for (int i = 0; i < 101; i++)
125 {
126 logger.Debug("Test" + i);
127 }
128 }
129 }
130 }
131 
132  
133 
134 //////////////////////////////////////////////创建数据库表
135 CREATE TABLE [dbo].[Log4Net](
136 [Id] [bigint] IDENTITY(1,1) NOT NULL,
137 [Date] [datetime2](7) NULL,
138 [Thread] [varchar](255) NULL,
139 [Level] [varchar](255) NULL,
140 [Logger] [varchar](255) NULL,
141 [Message] [varchar](255) NULL,
142 [Exception] [varchar](255) NULL,
143 CONSTRAINT [PK_Log4Net] PRIMARY KEY CLUSTERED 
144 (
145 [Id] ASC
146 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
147 ) ON [PRIMARY]
148 
149 GO
原文地址:https://www.cnblogs.com/clarklxr/p/9721144.html