• c#.net . core 创建和发布windows 服务中的一些配置 app.config ,log4net peizhi


    1 .net framwork 创建windows 窗体应用程序,自己写定时任务

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

    -----------------------------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>
    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
    <!-- Set root logger level to ERROR and its appenders -->
    <root>
    <level value="ALL" />
    <appender-ref ref="LogFile" />
    </root>
    <!-- Print only messages of level DEBUG or above in the packages -->
    <logger name="logApp">
    <level value="ALL" />
    </logger>
    <appender name="LogFile" type="log4net.Appender.RollingFileAppender,log4net">
    <param name="File" value="Log/" />
    <param name="AppendToFile" value="true" />
    <param name="RollingStyle" value="Date" />
    <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    </layout>
    </appender>
    </log4net>
    <appSettings>
    <add key="ClientSettingsProvider.ServiceUri" value="" />
    </appSettings>
    <system.web>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
    <providers>
    <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
    </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
    <providers>
    <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
    </providers>
    </roleManager>
    </system.web>
    </configuration>

    --------调用----------

     private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    log.Info("写日志内容");

    2 .net core 2.2 建控制台应用程序,

    然后添加新建项 c# windows 服务 引入相关nugit dll

     引入log4net dll

    app.config 相关system 节点删掉,只留 configuration 节点,程序会自动加载app.config,如果不管用需要右键主程序编辑 如下:

     

     添加节点

    <ItemGroup>
    <Content Include="App.config">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    </ItemGroup>

    这里log4net 再调试下 可以写日志到指定目录,如果发布后 ,添加到服务里,日志会写到system32 目录日志下,这里需要改下配置和代码:

      <param name="File" type="log4net.Util.PatternString" value="%property{LogsDirectory}Log" />

      log4net.GlobalContext.Properties["LogsDirectory"] = AppDomain.CurrentDomain.BaseDirectory;//指定服务日志目录

    这样发布后的服务 写日志就写到指定文件夹目里下了。。。搞了两天才搞明白,原谅我是个小白,希望大家看到会有帮助。

  • 相关阅读:
    C# 自定义文件图标 双击启动 (修改注册表)
    C/S打包 客户端/windows程序 InstallShield
    WPF 依赖属性
    WPF 自定义Expander
    WPF DevExpress ChartControl用法
    WPF 水平进度条
    WPF 自定义CheckBox
    WPF 自定义ListBox
    WPF 绕圈进度条(一)
    1.为什么要用泛型
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/12666672.html
Copyright © 2020-2023  润新知