我正在尝试从管道替换日志文件路径
<configuration>
<configSections>
<applicationSettings>
<log4net debug="true">
<appender name="appender1">
<file value="log.txt"/>
</appender>
</log4net>
</applicationSettings>
</configSections>
</configuration>
我正在使用FileTransform
任务来实现这一目标。如何访问log4net附加程序文件值并在azure管道中进行替换如何以及如何在变量中设置“名称”。我希望将“值”设置为“ 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"
}