program.cs
注册
builder.Logging.AddLog4Net(“log4net.config”);
using
Log4Net
Microsoft.Extensions.Logging.Log4Net.AspNetCore
log4net.config
<?xml version="1.0" encoding="utf-8"?>
<log4net debug="true">
//开启调试
<!— Define some output appenders —>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\log.txt" />
<!—追加日志内容—>
<appendToFile value="true" />
<!—防止多线程时不能写Log,官方说线程非安全—>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!—可以为:Once|Size|Date|Composite—>
<!—Composite为Size和Date的组合—>
<rollingStyle value="Composite" />
<!—当备份文件时,为文件名加的后缀—>
<datePattern value="yyyyMMdd.txt" />
<!—日志最大个数,都是最新的—>
<!—rollingStyle节点为Size时,只能有value个日志—>
<!—rollingStyle节点为Composite时,每天有value个日志—>
<maxSizeRollBackups value="3" />
<!—可用的单位:KB|MB|GB—>
<maximumFileSize value="2KB" />
<!—置为true,当前最新日志文件名永远为file节中的名字—>
<staticLogFileName value="true" />
<!—输出级别在INFO和ERROR之间的日志—>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<!—写入到sqlite数据库—>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<!—缓冲区事件的大小,设置为小于或者等于1的值,则不会发生任何缓冲,日志记录同步执行,否则事件将被缓冲—>
<bufferSize value="1" />
<!—数据库类型—>
<connectionType value="System.Data.SQLite.SQLiteConnection,System.Data.SQLite" />
<!—数据库地址—>
<connectionString value="Data Source=~/log.db;Version=3;" />
<!—写入日志语句—>
<commandText value="INSERT INTO Log(Date, Level, Logger, Message) VALUES (@Date, @Level, @Logger, @Message)" />
<parameter>
<!—配置字段—>
<parameterName value="@Date" />
<!—字段数据类型—>
<dbType value="DateTime" />
<!—北京时间—>
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@Level" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@Logger" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!—写入到mysql数据库—>
<appender name="MysqlAdoNetAppender" type="log4net.Appender.AdoNetAppender">
<!—缓冲区事件的大小,设置为小于或者等于1的值,则不会发生任何缓冲,日志记录同步执行,否则事件将被缓冲—>
<bufferSize value="1" />
<!—数据库类型—>
<connectionType value="MySql.Data.MySqlClient.MySqlConnection,MySql.Data" />
<!—数据库地址—>
<connectionString value="server=192.168.1.188;port=3306;database=enav;uid=root;pwd=root;" />
<!—写入日志语句—>
<commandText value="INSERT INTO lognet(Date, Level, Logger, Message) VALUES (@date, @level, @logger, @message)" />
<parameter>
<!—配置字段—>
<parameterName value="@date" />
<!—字段数据类型—>
<dbType value="DateTime" />
<!—北京时间—>
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@level" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!—写入到windows日志中—>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!— levels: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL —>
<root>
<priority value="ALL"/>
<level value="ALL"/>
<appender-ref ref="FileAppender" />
<!—<appender-ref ref="AdoNetAppender" />
<appender-ref ref="MysqlAdoNetAppender" />
<appender-ref ref="EventLogAppender" />—>
</root>
</log4net>

评论