我应该如何配置 log4net 以写入 Windows XP 和 7 上的 %LOCALAPPDATA%?

2024-05-10

我有一个内部应用程序,它使用 log4net 进行日志记录。我希望在以下位置生成日志%LOCALAPPDATA%\Vendor\App\application.log。不幸的是,log4net 正在创建日志文件%APPDATA%反而。这不是一个大问题,因为我们确实不使用这里描述的漫游,但如果可以避免的话,我不喜欢在我的代码中留下一些特质。

关于如何将文件写入我指定的位置而不以编程方式配置 log4net 并使用 pinvoke 获取 XP 的路径,有什么想法吗?

这是我的配置文件的附加部分(如果有帮助的话):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="${LOCALAPPDATA}\Vendor\App\application.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="100KB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" />
  </layout>
</appender>

参加这里的聚会已经很晚了,但我刚刚发现了这个并找到了答案。

看来你可以使用log4net.Util.PatternString https://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Util.PatternString.html将环境变量插入文件路径。所以OP的例子就变成了:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file type="log4net.Util.PatternString" value="%env{LOCALAPPDATA}\Vendor\App\application.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="100KB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" />
  </layout>
</appender>

Add 类型=“log4net.Util.PatternString”到文件元素,然后指定%env模式说明符后跟大括号中的环境变量名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该如何配置 log4net 以写入 Windows XP 和 7 上的 %LOCALAPPDATA%? 的相关文章

  • Powershell添加系统变量

    我正在尝试使用 PowerShell 在此处添加系统变量 我已经尝试过两种方式使用 env MyTestVariable My test variable and Environment SetEnvironmentVariable Tes
  • 如何从 Next.js 应用程序访问 Kubernetes 容器环境变量?

    在我的 next config js 中 我有一个如下所示的部分 module exports serverRuntimeConfig Will only be available on the server side mySecret s
  • 使用 Loggly 时在 log4net 中指定应用程序名称

    我正在测试几个 ASP NET Web 应用程序 并使用 Log4net 的附加程序通过 Loggly 设置它们 现在 日志记录似乎没问题 但我似乎找不到一种方法 使用 log4 loggly 附加程序 来指定应用程序名称 以便当我在 Lo
  • 从命令输出中设置 GDB 中的环境变量

    我试图在挑战中利用缓冲区溢出 缓冲区从环境变量中获取其值 在 GDB 中 我知道您可以使用以下命令设置环境变量 set environment username test 但是我需要传递用户名变量特殊字符 所以我需要执行以下操作 set e
  • 如何在 .NET Core 中设置全局环境变量(用户范围或系统范围)

    在完整的 NET中我们可以通过EnvironmentVariableTarget枚举到Environment SetEnvironmentVariable call public enum EnvironmentVariableTarget
  • 在 web.xml 中引用环境变量

    我正在预打包一个 JSP Web 应用程序 该应用程序依赖于 web xml 中的某些文件路径设置 这些设置在打包时是未知的 因为它们引用了客户在部署整个应用程序 其中 Web 应用程序是管理界面 时将设置的路径 似乎避免安装程序脚本中的令
  • log4net 控制台应用程序未登录发布

    我有一个使用 log4net 的控制台应用程序 通过温莎城堡 当我调试时 一切都很好地记录到控制台 但是当我发布并运行应用程序时 没有记录任何内容 我的 log4net 配置位于单独的文件 log4net config 中 我认为它没有找到
  • 为 PyCharm 中的所有配置设置相同的环境变量

    我有一个与 Celery 和很多不同的工作人员一起的项目 如何避免每次将 PyCharm 中的环境变量复制粘贴到每个运行 调试配置 有什么方法可以在项目设置中设置它们吗 找到解决方案here https stackoverflow com
  • 如何在 Windows 10 中将文件夹添加到“Path”环境变量(带有屏幕截图)

    在 StackOverflow 和整个网络上 关于如何将特定文件夹添加到 Windows 10 的指南已经过时且很少Path用户的环境变量 我认为针对新开发人员的完整指南 包含分步说明和屏幕截图 对于帮助他们从命令提示符 https upl
  • NodeJs 环境变量与配置文件

    实际上 我有一个 NodeJS Express 应用程序 其配置文件包含主机 端口 JWT 令牌 数据库参数等参数 问题是 将这些参数直接保留在环境变量上 没有任何配置文件 并访问它们 而不需要在所有组件和模块中进行 require 配置是
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • 如何在MAMP中设置环境变量?

    如何在 MAMP 版本 3 3 中设置环境变量 我可以在我的 PHP 应用程序中使用它 我已经更新了 Applications MAMP Library bin envvars and envvars std file并添加以下行 Lice
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 通过 SetEnvironmentVariable 进行的更改不会在使用 getenv 的库中生效

    我有一个简单的 C 应用程序 它绑定到使用 mingnu 编译器工具集编译的库 我可以轻松地调用库中的函数 没有任何问题 然而图书馆呼吁getenv要设置自身 需要设置此环境变量才能使库正常工作 所以我正在使用Environment Set
  • nuxt如何访问javascript文件中的env

    我无法在 nuxt 2 15 之外访问我的环境变量 当我部署时我可以看到 nuxt context config在浏览器中有正确的变量 但在自定义js文件中我无法访问process env baseURL它返回未定义 nuxt config
  • 在 .NET 中获取远程计算机上环境变量的实际值

    我正在尝试获取实际值 of 环境变量 这是我到目前为止所拥有的 string query string Format Select VariableValue From Win32 Environment Where Name 0 vari
  • Castle Windsor依赖注入:使用调用者类型作为参数

    以下类在温莎城堡容器中注册 namespace MyNamespace class Foo IFoo public Foo ILog log log log ILog是一个log4net记录器 当前注册如下 Component For
  • 主管和环境变量

    我真的不知道如何让主管使用环境变量 下面是一个配置片段 program htNotificationService priority 2 autostart true autorestart true directory home ubun
  • 设置环境变量供节点检索

    我正在尝试遵循教程 它说 有几种加载凭据的方法 从环境变量加载 从磁盘上的 JSON 文件加载 键需要如下所示 USER ID USER KEY 这意味着如果您正确设置环境变量 您 根本不需要管理应用程序中的凭据 根据一些谷歌搜索 我似乎需

随机推荐