1. Download log4net. dll and introduce it to project references.
2. You need to modify the global. asax configuration to load the log4net configuration when the application object is started. This step cannot be missing. Protected void application_start (Object sender, eventargs E)
{
Log4net. config. domconfigurator. Configure ();
}
3. You can see that the above Code has no parameters. it is visible that the default configuration is loaded. This configuration must be set in Web. config.
Add the following section to the Web. cofig root node configuration: <configsections>
<Section name = "log4net" type = "log4net. config. log4netconfigurationsectionhandler, log4net"/>
</Configsections>
4. This config section declares another config section named log4net. The latter must be located under the configuration of the web. config root node: The following is a sample: <log4net DEBUG = "false">
<Appender name = "logfileappender" type = "log4net. appender. fileappender">
<Param name = "file" value = "xxxxapplication.log.txt"/>
<Param name = "datepattern" value = "mm-dd hh: mm"/>
<Param name = "appendtofile" value = "true"/>
<Layout type = "log4net. layout. patternlayout">
<Param name = "conversionpattern" value = "% d [% T] %-5 p % C [% x]-% m % N"/>
</Layout>
</Appender>
<Appender name = "httptraceappender" type = "log4net. appender. aspnettraceappender">
<Layout type = "log4net. layout. patternlayout">
<Param name = "conversionpattern" value = "% d [% T] %-5 p % C [% x]-% m % N"/>
</Layout>
</Appender>
<Appender name = "eventlogappender" type = "log4net. appender. eventlogappender">
<Layout type = "log4net. layout. patternlayout">
<Param name = "conversionpattern" value = "% d [% T] %-5 p % C [% x]-% m % N"/>
</Layout>
</Appender>
<Appender name = "rollinglogfileappender" type = "log4net. appender. rollingfileappender">
<Param name = "file" value = "_ logdata \ log.txt"/>
<Param name = "appendtofile" value = "true"/>
<Param name = "maxsizerollbackups" value = "10"/>
<Param name = "maximumfilesize" value = "5 MB"/>
<Param name = "rollingstyle" value = "size"/>
<Param name = "staticlogfilename" value = "true"/>
<Layout type = "log4net. layout. patternlayout">
<Param name = "conversionpattern" value = "% d [% T] %-5 p % C [% x]-% m % N"/>
</Layout>
</Appender>
<Root>
<Level value = "debug"/>
<Appender-ref = "logfileappender"/>
</Root>
</Log4net>
5. The above defines multiple appender. Simply put, each appender is an output medium.
The configuration using sqlexpress is as follows:
<Log4net DEBUG = "false">
<Appender name = "adonetappender" type = "log4net. appender. adonetappender">
<Buffersize value = "10"/>
<Connectiontype value = "system. Data. sqlclient. sqlconnection, system. Data, version = 2.0.50727.42, culture = neutral, publickeytoken = b77a5c561934e089"/>
<Connectionstring value = "Data Source =. \ sqlexpress; attachdbfilename = | datadirectory | \ database. MDF; Integrated Security = true; user instance = true"/>
<Commandtext value = "insert into log ([date], [thread], [level], [logger], [Message], [Exception]) values (@ log_date, @ thread, @ log_level, @ logger, @ message, @ exception) "/>
<Parameter>
<Parametername value = "@ log_date"/>
<Dbtype value = "datetime"/>
<Layout type = "log4net. layout. rawtimestamplayout"/>
</Parameter>
<Parameter>
<Parametername value = "@ thread"/>
<Dbtype value = "string"/>
<Size value = "255"/>
<Layout type = "log4net. layout. patternlayout">
<Conversionpattern value = "% thread"/>
</Layout>
</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 = "@ logger"/>
<Dbtype value = "string"/>
<Size value = "255"/>
<Layout type = "log4net. layout. patternlayout">
<Conversionpattern value = "% logger"/>
</Layout>
</Parameter>
<Parameter>
<Parametername value = "@ message"/>
<Dbtype value = "string"/>
<Size value = "4000"/>
<Layout type = "log4net. layout. patternlayout">
<Conversionpattern value = "% message"/>
</Layout>
</Parameter>
<Parameter>
<Parametername value = "@ exception"/>
<Dbtype value = "string"/>
<Size value = "2000"/>
<Layout type = "log4net. layout. exceptionlayout"/>
</Parameter>
</Appender>
<Root>
<Level value = "debug"/>
<Appender-ref = "adonetappender"/>
</Root>
</Log4net>
The database is defined as follows:
Create Table [DBO]. [log] (
[ID] [int] identity (1, 1) not null,
[Date] [datetime] not null,
[Thread] [varchar] (255) not null,
[Level] [varchar] (50) not null,
[Logger] [varchar] (255) not null,
[Message] [varchar] (4000) not null,
[Exception] [varchar] (2000) null
)
How to obtain publickeytoken:
Use Sn-T c: \ windows \ Microsoft. NET \ framework \ v2.0.50727 \ System. Data. dll in the vs2005 Console
6. The selected appender is specified for the root node. In this example, the adonetappender is selected.
7. You have configured log4net at the current location. It can be directly used in our application.
8. The following describes the application methods:
To output logs, you must first obtain the logger with an alias.
Use the following command
Log4net. ilog logger = log4net. logmanager. getlogger (this. GetType ());
(You can use GetType to get the current class name)
Call later
Logger. Info (string message );
Logger. Error (string message );
Logger. debug (string message );
Logs can be output.