Use sqlexpress for log4net

Source: Internet
Author: User
Tags log4net
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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.