使NLog配置文件用户在运行时定义

用户名

我有一个winForm应用程序。我正在使用NLog进行日志记录。我的配置文件如下。我可以在运行时在此配置文件中定义任何参数吗?例如对于archiveAboveSize="4000"我可以在winform中有一个numericupdown,它可以从用户那里获取此值(以便4000可以是3000或5000),然后在配置文件中相应地设置此值?

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <target xsi:type="File"
      name="file"
      layout="${longdate}|${level:uppercase=true}|${logger}|${message}"
      archiveAboveSize="4000"
      maxArchiveFiles="1"
      archiveFileName="${basedir}/log_archived.txt"
      fileName="log.txt" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="file" />
  </rules>
</nlog>
谢尔盖·别列佐夫斯基(Sergey Berezovskiy)

您可以从NLog配置中按名称获取目标并在运行时更改设置:

var target = (FileTarget)LogManager.Configuration.FindTargetByName("file");
if (target != null)
    target.ArchiveAboveSize = 3000;

不幸的是,您不能以这种方式更新NLog配置文件-您应该手动进行。您可以为此使用LINQ:

var nlogConfigFile = "NLog.config";
var xdoc = XDocument.Load(nlogConfigFile);
var ns = xdoc.Root.GetDefaultNamespace();
var fileTarget = xdoc.Descendants(ns + "target")
         .FirstOrDefault(t => (string)t.Attribute("name") == "file");
fileTarget.Attribute("archiveAboveSize").SetValue(3000);
xdoc.Save(nlogConfigFile);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时获取配置文件的EXPIRATION日期?

来自分类Dev

如何在运行时修改配置文件

来自分类Dev

当Firefox运行时,如何查找正在运行的Firefox配置文件?

来自分类Dev

如何在运行时在春季加载其他bean配置文件

来自分类Dev

在运行时在Ansible 1.9中指定SSH配置文件

来自分类Dev

是否可以在运行时在不同的Winform项目上使用不同的配置文件?

来自分类Dev

在运行时获取Maven Java项目中激活的配置文件名称的列表

来自分类Dev

在运行时列出设备上的所有临时配置文件并获取其到期日期

来自分类Dev

如何检查(在运行时)用户是否包含文件

来自分类Dev

在运行时配置EJB查找

来自分类Dev

在运行时更新Dropwizard配置

来自分类Dev

在运行时定义的类型的列表

来自分类Dev

使用SystemD运行Solr:在运行时应用的用户限制(ulimit)与配置的限制不同

来自分类Dev

使用 SystemD 运行 Solr:在运行时应用的用户限制 (ulimit) 与配置的限制不同

来自分类Dev

如何在运行时更改NLog规则目标?

来自分类Dev

在运行时合并ResX文件?

来自分类Dev

在运行时加载JSON文件

来自分类Dev

在运行时加载JSON文件

来自分类Dev

在运行时读取 plist 文件

来自分类Dev

在.NET中在运行时合并自定义配置节

来自分类Dev

在运行时从自定义位置加载 HOCON 格式的类型安全配置

来自分类Dev

Groovy“作为”运算符是否在运行时为用户定义的类创建子类?

来自分类Dev

修改活动配置文件并刷新Spring Boot应用程序中的ApplicationContext运行时

来自分类Dev

K运行时的明显“配置文件”之间有什么区别?

来自分类Dev

在Gunicorn上运行时,如何使用python的cProfile对Django应用进行配置文件

来自分类Dev

在Bazel工具链配置文件中获取包的运行时路径

来自分类Dev

如何在运行时从程序包中以编程方式配置karaf / etc文件?

来自分类Dev

在运行时为RequireJS配置添加路径

来自分类Dev

如何在运行时配置Ecto?

Related 相关文章

  1. 1

    在运行时获取配置文件的EXPIRATION日期?

  2. 2

    如何在运行时修改配置文件

  3. 3

    当Firefox运行时,如何查找正在运行的Firefox配置文件?

  4. 4

    如何在运行时在春季加载其他bean配置文件

  5. 5

    在运行时在Ansible 1.9中指定SSH配置文件

  6. 6

    是否可以在运行时在不同的Winform项目上使用不同的配置文件?

  7. 7

    在运行时获取Maven Java项目中激活的配置文件名称的列表

  8. 8

    在运行时列出设备上的所有临时配置文件并获取其到期日期

  9. 9

    如何检查(在运行时)用户是否包含文件

  10. 10

    在运行时配置EJB查找

  11. 11

    在运行时更新Dropwizard配置

  12. 12

    在运行时定义的类型的列表

  13. 13

    使用SystemD运行Solr:在运行时应用的用户限制(ulimit)与配置的限制不同

  14. 14

    使用 SystemD 运行 Solr:在运行时应用的用户限制 (ulimit) 与配置的限制不同

  15. 15

    如何在运行时更改NLog规则目标?

  16. 16

    在运行时合并ResX文件?

  17. 17

    在运行时加载JSON文件

  18. 18

    在运行时加载JSON文件

  19. 19

    在运行时读取 plist 文件

  20. 20

    在.NET中在运行时合并自定义配置节

  21. 21

    在运行时从自定义位置加载 HOCON 格式的类型安全配置

  22. 22

    Groovy“作为”运算符是否在运行时为用户定义的类创建子类?

  23. 23

    修改活动配置文件并刷新Spring Boot应用程序中的ApplicationContext运行时

  24. 24

    K运行时的明显“配置文件”之间有什么区别?

  25. 25

    在Gunicorn上运行时,如何使用python的cProfile对Django应用进行配置文件

  26. 26

    在Bazel工具链配置文件中获取包的运行时路径

  27. 27

    如何在运行时从程序包中以编程方式配置karaf / etc文件?

  28. 28

    在运行时为RequireJS配置添加路径

  29. 29

    如何在运行时配置Ecto?

热门标签

归档