控制台添加log4net

1.添加nuget包

log4net

2.app.config配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <log4net>
    <root>
      <!-- 默认日志对象级别 -->
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="ALL" />
      <appender-ref ref="SysAppender" />
    </root>

    <logger name="WebLogger">
      <level value="DEBUG" />
    </logger>
    <!-- 
    AdoNetAppender:利用ADO.NET记录到数据库的日志。
    ConsoleAppender:将日志输出到控制台。
    RollingFileAppender:将日志以回滚文件(重复操作原始文件)的形式写到文件中。
    -->
    <!-- 控制台显示日志 -->
    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件-->
      <param name="File" value="C:\YunHostServer\Log\" />
      <!--是否是向文件中追加日志-->
      <param name="AppendToFile" value="true" />
      <!--<param name="DatePattern" value="yyyy-MM-dd/"-ReflectionLayout.log=""""  />
      <param name="DatePattern" value="yyyyMMdd/yyyyMMdd"-TimerServer.log""  />
      <param name="DatePattern" value="yyyyMMdd/"TimerServer/TimerServer.log""  />-->
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]日志文件名格式为:Logs_20181218.txt -->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
      <param name="StaticLogFileName" value="false" />

      <layout type="log4net.Layout.PatternLayout,log4net">
        <!--
        %d, %date     :表示当然的时间
      %p, %level    :表示日志的级别
      %c, %logger   :表示日志产生的主题或名称,通常是所在的类名,便于定位问题
      %m, %message  :表示日志的具体内容
      %n, %newline  :换行
        %exception    :表示异常信息
        -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        <param name="Header" value=" ----------------------header--------------------------&#xD;&#xA;" />
        <param name="Footer" value=" ----------------------footer--------------------------&#xD;&#xA;" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <!-- 控制输出日志的级别范围 -->
        <!--<param name="LevelMin" value="Info" />
        <param name="LevelMax" value="Warn" />-->
      </filter>
    </appender>
    <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
  </log4net>


  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

第三步:有点不一样了,我们要在项目中的AssemblyInfo.cs中加一行代码:

//log4net从配置文件中读取配置
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

最后一步就是在项目中使用了,跟网站项目中的使用一样就可以了。

有关log4net的配置工作就全部讲解完了,希望对大家有所帮助,有不足之地和错误希望指正和谅解!!!

private static log4net.ILog log = log4net.LogManager.GetLogger("CloudHostServer");

log.Info($"云主机开启。。");

https://www.cnblogs.com/weixiaowei/p/8253228.html

原文地址:https://www.cnblogs.com/blogzys/p/10219782.html