log4net的几种实现配置

  • 写入数据库版本
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <!--该配置文件具体说明参见  http://logging.apache.org/log4net/release/config-examples.html-->
    <appender name="Appender_SQLServer" 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="数据库连接" />

        <commandText value="insert into sh3h_log(log_date,thread,log_level,logger,method_name,method_parameter,log_message,machinename,processname,appdomainname)values(@log_date,@thread,@log_level,@logger,@method_name,@method_parameter,@log_message,@machinename,@processname,@appdomainname)" />
        <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.RawTimeStampLayout" />
        </parameter>
        <parameter>
            <parameterName value="@thread" />
            <dbType value="String" />
            <size value="100" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%thread" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="100" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%logger" />
            </layout>
        </parameter>

        <parameter>
            <parameterName value="@method_name" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%property{method_name}" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@method_parameter" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%property{method_parameter}" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@log_message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%message" />
            </layout>
        </parameter>

        <parameter>
            <parameterName value="@machinename" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%property{machinename}" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@processname" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%property{processname}" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@appdomainname" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%property{appdomainname}" />
            </layout>
        </parameter>
    </appender>

    <root>
        <level value="all" />
        <appender-ref ref="Appender_SQLServer" />
    </root>

</log4net>

 代码

 效果

 

 

  • 单独写文件版本
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>

    <log4net>
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            <!--日志路径-->
            <param name= "File" value= "log\"/>
            <!--是否是向文件中追加日志-->
            <param name= "AppendToFile" value= "true"/>
            <!--log保留天数-->
            <param name= "MaxSizeRollBackups" value= "10"/>
            <!--日志文件名是否是固定不变的-->
            <param name= "StaticLogFileName" value= "false"/>
            <!--日志文件名格式为:2008-08-31.log-->
            <param name= "DatePattern" value= "yyyy-MM-dd&quot;.read.log&quot;"/>
            <!--日志根据日期滚动-->
            <param name= "RollingStyle" value= "Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %message%newline" />
            </layout>
        </appender>

        <!-- 控制台前台显示日志 -->
        <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
            <mapping>
                <level value="ERROR" />
                <foreColor value="Red, HighIntensity" />
            </mapping>
            <mapping>
                <level value="Info" />
                <foreColor value="Green" />
            </mapping>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
            </layout>

            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="Info" />
                <param name="LevelMax" value="Fatal" />
            </filter>
        </appender>

        <root>
            <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
            <level value="all" />
            <appender-ref ref="ColoredConsoleAppender"/>
            <appender-ref ref="RollingLogFileAppender"/>
        </root>
    </log4net>
</configuration>

代码调用,同数据库调用

  • 按照功能分类写入文件版本
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <log4net>

        <appender name="TestAppender" type="log4net.Appender.RollingFileAppender">
            <param name= "File" value= "log\"/>
            <!--是否是向文件中追加日志-->
            <param name= "AppendToFile" value= "true"/>
            <!--log保留天数-->
            <param name= "MaxSizeRollBackups" value= "10"/>
            <!--日志文件名是否是固定不变的-->
            <param name= "StaticLogFileName" value= "false"/>
            <!--日志文件名格式为:2008-08-31.log-->
            <param name= "DatePattern" value= "yyyy-MM-dd&quot;.test.log&quot;"/>
            <!--日志根据日期滚动-->
            <param name= "RollingStyle" value= "Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} [%-5level] %logger: %message%newline" />
            </layout>
            <filter type="log4net.Filter.LoggerMatchFilter">
                <loggerToMatch value="Test" />
                <acceptOnMatch value="true"/>

            </filter>

        </appender>


        <appender name="LoginAppender" type="log4net.Appender.RollingFileAppender">
            <param name= "File" value= "log\"/>
            <!--是否是向文件中追加日志-->
            <param name= "AppendToFile" value= "true"/>
            <!--log保留天数-->
            <param name= "MaxSizeRollBackups" value= "10"/>
            <!--日志文件名是否是固定不变的-->
            <param name= "StaticLogFileName" value= "false"/>
            <!--日志文件名格式为:2008-08-31.log-->
            <param name= "DatePattern" value= "yyyy-MM-dd&quot;.login.log&quot;"/>
            <!--日志根据日期滚动-->
            <param name= "RollingStyle" value= "Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} [%-5level] %logger: %message%newline" />
            </layout>
            <filter type="log4net.Filter.LoggerMatchFilter">
                <loggerToMatch  value="Login" />
                <acceptOnMatch value="true"/>

            </filter>
        </appender>

        <appender name="ImportAppender" type="log4net.Appender.RollingFileAppender">
            <param name= "File" value= "log\"/>
            <!--是否是向文件中追加日志-->
            <param name= "AppendToFile" value= "true"/>
            <!--log保留天数-->
            <param name= "MaxSizeRollBackups" value= "10"/>
            <!--日志文件名是否是固定不变的-->
            <param name= "StaticLogFileName" value= "false"/>
            <!--日志文件名格式为:2008-08-31.log-->
            <param name= "DatePattern" value= "yyyy-MM-dd&quot;.import.log&quot;"/>
            <!--日志根据日期滚动-->
            <param name= "RollingStyle" value= "Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} [%-5level] %logger: %message%newline" />
            </layout>
            <filter type="log4net.Filter.LoggerMatchFilter">
                <loggerToMatch value="Import" />
                <acceptOnMatch value="true"/>

            </filter>
        </appender>

        <logger name="testInfo">
            <level value="ALL"/>
            <appender-ref ref="TestAppender"/>
        </logger>
        <logger name="loginInfo">
            <level value="ALL"/>
            <appender-ref ref="LoginAppender"/>
        </logger>
        <logger name="importInfo">
            <level value="ALL"/>
            <appender-ref ref="ImportAppender"/>
        </logger>
        
    </log4net>
</configuration>

代码

 效果

 

posted @ 2023-05-06 22:29  汪汪汪~~  阅读(132)  评论(0编辑  收藏  举报