1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="utf-8"?>
<configuration>
 
    <configSections>
        <!--配置一个结点 名称为log4net-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
 
    <log4net>
        <!--写入到文件-->
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
 
            <!--文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录-->
            <param name="File" value="Logs\" />
            <!--将日记写入到跟目录下面的Logs文件夹下面的yyyy-MM-dd.TXT文件中-->
 
            <param name="AppendToFile" value="true" />
 
            <param name="MaxSizeRollBackups" value="100" />
 
            <param name="MaximumFileSize" value="10240KB" />
 
            <param name="StaticLogFileName" value="false" />
 
            <param name="RollingStyle" value="Date" />
 
            <param name="DatePattern" value="yyyy-MM-dd.TXT" />
            <!--TXT后缀必须是大写的,否则有问题-->
 
            <param name="CountDirection" value="-1" />
 
 
            <!--log4net记录错误的格式(即:用什么样的格式(布局)来记录错误)-->
 
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value=" 【时间】:%d%n 【级别】:%p%n 【类名】:%c%n 【线程ID】: %thread %n 【文件地址】:%F 第%L行%n 【日志内容】:%m%n 【日记详细】:%exception %n---------------------------------------------------------------------------------------------------------------%n" />
            </layout>
        </appender>
 
        <!--将日记写入数据库-->
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <bufferSize value="-1" />
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <connectionString value="data source=121.196.36.24,1533;initial catalog=vmes;persist security info=True;user id=sa;password=xkd@20230101;MultipleActiveResultSets=True;" />
            <commandText value="INSERT INTO T_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>
 
        <!--在出现什么级别的错误才记录错误 【注意:如果有多个appender-ref的时候,应该给他们放到同一个root节点下】-->
        <root>
            <level value="ALL" />
            <appender-ref ref="LogFileAppender"/>
            <appender-ref ref="AdoNetAppender" />
            <appender-ref ref="ADONetAppender_SqlServer"/>
        </root>
 
    </log4net>
</configuration>