xml - 如何在 azure 管道中访问 log4net appender 文件值和替换
问题描述
我正在尝试从管道替换日志文件路径
<configuration>
<configSections>
<applicationSettings>
<log4net debug="true">
<appender name="appender1">
<file value="log.txt"/>
</appender>
</log4net>
</applicationSettings>
</configSections>
</configuration>
我正在使用FileTransform
任务来实现这一点。如何访问 log4net appender 文件值并在 azure 管道中替换 What 和 How 应该是要在变量中设置的“名称”。我希望将“值”设置为“D:\Logs\log.txt”。谢谢。
解决方案
正如FileTransform 任务文档中所述。管道中定义的变量将与appSettings、applicationSettings 和 connectionStrings 部分中的key
或条目匹配。name
在构建或发布管道中定义的变量将与任何配置文件和 parameters.xml 的 appSettings、applicationSettings 和 connectionStrings 部分中的“key”或“name”条目匹配。变量替换在配置转换后运行。
因此,您可以在配置文件中为属性添加name
属性。file
例如在下面。我添加了一个名称属性LogFile
:
<applicationSettings>
<log4net debug="true">
<appender name="appender1">
<file name="LogFile" value="log.txt"/>
</appender>
</log4net>
</applicationSettings>
LogFile
然后,您可以在 azure devops 管道的变量部分定义一个名为的变量。请参见下面的示例:
variables:
LogFile: D:\Logs\log.txt
steps:
- task: FileTransform@1
inputs:
folderPath: $(System.DefaultWorkingDirectory)
fileType: xml
如果您不想向属性添加name
属性file
。您可以使用 Task Magic Chuncks来替换file
属性的值。
设置转换:configuration/configSections/applicationSettings/log4net/appender/file/@value": "D:\Logs\log.txt"
。请参见下面的示例:
请参阅此处了解如何转换 XML 文件
steps:
- task: sergeyzwezdin.magic-chunks.magic.chunks.MagicChunks@2
displayName: 'Config transform'
inputs:
sourcePath: '$(System.DefaultWorkingDirectory)/path/to/app.config'
transformations: |
{
"configuration/configSections/applicationSettings/log4net/appender/file/@value": "D:\Logs\log.txt"
}
推荐阅读
- python - 使用 self._variable 从其他函数调用变量,为什么它似乎工作而不是随机工作(一定有原因)?
- node.js - 如何让 npm 包 json-server 与 API Routes 一起运行
- python - 如何在python列表中进行嵌套循环
- python - 自动调整 QLabel 的大小以适应更新的 QTableWidget 跨度
- graphviz - Graphviz 不需要的子图节点分离拉伸
- firebase - firebase 实时数据库更新值两次
- python - 有没有办法给一个字母分配一个数字?
- javascript - 当div可以向上或向下滚动时创建滚动渐变?
- oracle - ORACLE HCM 表关系
- c++ - 在 Visual Studio 2019 中通过 Windows 桌面向导使用 C++ 标准库