一、效果
- 记录日志为文档
- 记录日志到数据库
二、添加NuGet包
三、log4net.config代码配置
<?xml version="1.0" encoding="utf-8" ?><log4net><!-- Debug日志 --><appendername="RollingFileDebug"type="log4net.Appender.RollingFileAppender"><!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 --><filevalue="logs\\"/><!-- 日志文件的命名规则 --><datePatternvalue="yyyy-MM-dd/'Debug.log'"/><!-- 将日志信息追加到已有的日志文件中--><appendToFilevalue="true"/><rollingStylevalue="Size"/><maxSizeRollBackupsvalue="100"/><maximumFileSizevalue="3MB"/><!-- 指定按日期切分日志文件 --><rollingStylevalue="Date"/><!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false --><staticLogFileNamevalue="false"/><!-- 最小锁定模式,以允许多个进程可以写入同一个文件 --><lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%newline%newline【日志时间】: %d 【线程ID】: %thread %newline【日志级别】: %-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><paramname="LevelMin"value="Debug"/><paramname="LevelMax"value="Debug"/></filter></appender><!-- Info日志 --><appendername="RollingFileInfo"type="log4net.Appender.RollingFileAppender"><!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 --><filevalue="logs\\"/><!-- 日志文件的命名规则 --><datePatternvalue="yyyy-MM-dd/'Info.log'"/><!-- 将日志信息追加到已有的日志文件中--><appendToFilevalue="true"/><rollingStylevalue="Size"/><maxSizeRollBackupsvalue="100"/><maximumFileSizevalue="3MB"/><!-- 指定按日期切分日志文件 --><rollingStylevalue="Date"/><!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false --><staticLogFileNamevalue="false"/><!-- 最小锁定模式,以允许多个进程可以写入同一个文件 --><lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><paramname="LevelMin"value="Info"/><paramname="LevelMax"value="Info"/></filter></appender><!-- WARN日志 --><appendername="RollingFileWarn"type="log4net.Appender.RollingFileAppender"><!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 --><filevalue="logs\\"/><!-- 日志文件的命名规则 --><datePatternvalue="yyyy-MM-dd/'Warn.log'"/><!-- 将日志信息追加到已有的日志文件中--><appendToFilevalue="true"/><rollingStylevalue="Size"/><maxSizeRollBackupsvalue="100"/><maximumFileSizevalue="3MB"/><!-- 指定按日期切分日志文件 --><rollingStylevalue="Date"/><!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false --><staticLogFileNamevalue="false"/><!-- 最小锁定模式,以允许多个进程可以写入同一个文件 --><lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><paramname="LevelMin"value="Warn"/><paramname="LevelMax"value="Warn"/></filter></appender><!-- Error日志 --><appendername="RollingFileError"type="log4net.Appender.RollingFileAppender"><!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 --><filevalue="logs\\"/><!-- 日志文件的命名规则 --><datePatternvalue="yyyy-MM-dd/'Error.log'"/><!-- 将日志信息追加到已有的日志文件中--><appendToFilevalue="true"/><rollingStylevalue="Size"/><maxSizeRollBackupsvalue="100"/><maximumFileSizevalue="3MB"/><!-- 指定按日期切分日志文件 --><rollingStylevalue="Date"/><!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false --><staticLogFileNamevalue="false"/><!-- 最小锁定模式,以允许多个进程可以写入同一个文件 --><lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><paramname="LevelMin"value="Error"/><paramname="LevelMax"value="Error"/></filter></appender><!-- Fatal日志 --><appendername="RollingFileFatal"type="log4net.Appender.RollingFileAppender"><!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 --><filevalue="logs\\"/><!-- 日志文件的命名规则 --><datePatternvalue="yyyy-MM-dd/'Fatal.log'"/><!-- 将日志信息追加到已有的日志文件中--><appendToFilevalue="true"/><rollingStylevalue="Size"/><maxSizeRollBackupsvalue="100"/><maximumFileSizevalue="3MB"/><!-- 指定按日期切分日志文件 --><rollingStylevalue="Date"/><!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false --><staticLogFileNamevalue="false"/><!-- 最小锁定模式,以允许多个进程可以写入同一个文件 --><lockingModeltype="log4net.Appender.FileAppender+MinimalLock"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m%newline"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><paramname="LevelMin"value="Fatal"/><paramname="LevelMax"value="Fatal"/></filter></appender><!--数据库配置--><appendername="logAppender_SqlServer"type="log4net.Appender.ADONetAppender"><bufferSizevalue="0"/><connectionTypevalue="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/><!--链接数据库配置--><connectionStringvalue="Data Source=xxxxxxxx;Initial Catalog=xxxxxxxx;User ID=sa;Password=********;"/><commandTextvalue="INSERT INTO LogData ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/><parameter><parameterNamevalue="@log_date"/><dbTypevalue="DateTime"/><layouttype="log4net.Layout.RawTimeStampLayout"/></parameter><parameter><parameterNamevalue="@thread"/><dbTypevalue="String"/><sizevalue="50"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%thread"/></layout></parameter><parameter><parameterNamevalue="@log_level"/><dbTypevalue="String"/><sizevalue="50"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%level"/></layout></parameter><parameter><parameterNamevalue="@logger"/><dbTypevalue="String"/><sizevalue="200"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%logger"/></layout></parameter><parameter><parameterNamevalue="@message"/><dbTypevalue="String"/><sizevalue="2000"/><layouttype="log4net.Layout.PatternLayout"><conversionPatternvalue="%message"/></layout></parameter><parameter><parameterNamevalue="@exception"/><dbTypevalue="String"/><sizevalue="2000"/><layouttype="log4net.Layout.ExceptionLayout"/></parameter></appender><root><!--控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 如果没有定义LEVEL的值,则缺省为DEBUG--><appender-refref="RollingFileDebug"/><appender-refref="RollingFileInfo"/><appender-refref="RollingFileWarn"/><appender-refref="RollingFileError"/><appender-refref="RollingFileFatal"/><appender-refref="logAppender_SqlServer"/><levelvalue="DEBUG"/></root></log4net>
本文转载自: https://blog.csdn.net/d1332508051/article/details/136140707
版权归原作者 Tigers996 所有, 如有侵权,请联系我们删除。
版权归原作者 Tigers996 所有, 如有侵权,请联系我们删除。