配置文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net debug="true"> <!--控制台界面日志输出--> <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender"> <mapping> <level value="ERROR" /> <foreColor value="White" /> <backColor value="Red" /> </mapping> <mapping> <level value="WARN" /> <foreColor value="Yellow" /> </mapping> <mapping> <level value="INFO" /> <foreColor value="White" /> </mapping> <mapping> <level value="DEBUG" /> <foreColor value="Blue" /> </mapping> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%date] %thread -- %-5level -- %logger [%M] -- %message%newline" /> </layout> </appender> <!--本地文件日志记录--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logs/applicationLog.log" /> <!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)--> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <!--备份log文件的个数最多10个--> <maximumFileSize value="2MB" /> <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。--> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <!--指定log的格式--> <conversionPattern value="[%date] %thread -- %-5level -- %logger [%M] -- %message%newline" /> </layout> </appender> <!--数据库日志记录--> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="1"/> <!--设置日志缓冲区大小,设置为最小,这样就可以实时写入数据,否则每次缓冲区必须填满才会写入数据库--> <param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" /> <param name="ConnectionString" value="Database=ui;Data Source=120.55.42.150;User Id=root;Password=root123456;CharSet=utf8;port=3308;SslMode=none;"/> <param name="CommandText" value="insert into log(log_datetime,log_thread,log_level,log_logger,log_message) values(@log_datetime, @log_thread , @log_level, @log_logger, @log_message)" /> <param name="Parameter"> <param name="ParameterName" value="@log_datetime" /> <param name="DbType" value="DateTime" /> <param name="Layout" type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" /> </param> </param> <param name="Parameter"> <param name="ParameterName" value="@log_thread" /> <param name="DbType" value="String" /> <param name="Size" value="255" /> <param name="Layout" type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%t" /> </param> </param> <param name="Parameter"> <param name="ParameterName" value="@log_level" /> <param name="DbType" value="String" /> <param name="Size" value="50" /> <param name="Layout" type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%p" /> </param> </param> <param name="Parameter"> <param name="ParameterName" value="@log_logger" /> <param name="DbType" value="String" /> <param name="Size" value="255" /> <param name="Layout" type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%c" /> </param> </param> <param name="Parameter"> <param name="ParameterName" value="@log_message" /> <param name="DbType" value="String" /> <param name="Size" value="255" /> <param name="Layout" type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%m" /> </param> </param> </appender> <root> <level value="DEBUG" /> <!--指定将此级别及以上的log打印到log文件中--> <appender-ref ref="ADONetAppender" /><!--将数据库日志记录添加到logger中--> <appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="ManagedColoredConsoleAppender" /> </root> <logger name="*"> <level value="ALL" /> <appender-ref ref="ADONetAppender" /> </logger> </log4net> </configuration>
日志使用:
//MethodBase.GetCurrentMethod().DeclaringType
获取到当前程序集的完整命名空间
private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); logger.Info("WCS Control Center [boxkey: cc]"); logger.Info("Version: Octopus Release (1.0.0)");