Azure 网络作业和 log4net
Azure web job and log4net
我正在使用 Azure 网络作业来安排某些任务。
Web 作业在 Azure Web 应用程序中成功部署,但我无法相对确定应存储日志文件的 app_data 文件夹的路径。 (网络作业位于 d:\home\site\wwwroot\App_Data\jobs\triggered\webjobname)
以下(绝对)路径有效:
<file value="d:\home\site\wwwroot\App_Data\Logs\WebJobLog.txt" />
以下路径不起作用:
<file value="../../App_Data/Logs/WebJobLog.txt" />
<file value="/App_Data/Logs/WebJobLog.txt" />
<file value="~/App_Data/Logs/WebJobLog.txt" />
有谁知道怎么相对设置文件路径吗?
您应该避免硬编码有关 WebJobs 部署位置的相关假设。
如果你的目标是进入APP_DATA
文件夹,你可以查看WEBROOT_PATH
环境变量,它指向d:\home\site\wwwroot
,然后将其与[=10]结合起来=].
一般情况下,您可以通过如下方式指定路径来达到目的:
<file value="App_Data\Logs\WebJobLog.log" />
而对于 WebJobs,默认情况下,您的 Webjob 将被复制到一个临时目录(例如 %TEMP%\jobs\{job type}\{job name}\{random name}
),对于 运行,此时您的日志文件将位于临时文件夹下。详情请参考WebJob Working Directory.
根据您的要求,您可以利用 log4net.Util.PatternString 并使用 env
转换模式来检索 David Ebbo 建议的环境变量 (WEBROOT_PATH
)。您需要按如下方式更改路径:
<file type="log4net.Util.PatternString" value="%env{WEBROOT_PATH}\App_Data\Logs\WebJobLog.log" />
此外,您可以通过编程方式创建 FileAppender
,对于这种方法,您可以参考此 issue. Moreover, you could check the build-in logging for webjobs here。
我正在使用 Azure 网络作业来安排某些任务。 Web 作业在 Azure Web 应用程序中成功部署,但我无法相对确定应存储日志文件的 app_data 文件夹的路径。 (网络作业位于 d:\home\site\wwwroot\App_Data\jobs\triggered\webjobname)
以下(绝对)路径有效:
<file value="d:\home\site\wwwroot\App_Data\Logs\WebJobLog.txt" />
以下路径不起作用:
<file value="../../App_Data/Logs/WebJobLog.txt" />
<file value="/App_Data/Logs/WebJobLog.txt" />
<file value="~/App_Data/Logs/WebJobLog.txt" />
有谁知道怎么相对设置文件路径吗?
您应该避免硬编码有关 WebJobs 部署位置的相关假设。
如果你的目标是进入APP_DATA
文件夹,你可以查看WEBROOT_PATH
环境变量,它指向d:\home\site\wwwroot
,然后将其与[=10]结合起来=].
一般情况下,您可以通过如下方式指定路径来达到目的:
<file value="App_Data\Logs\WebJobLog.log" />
而对于 WebJobs,默认情况下,您的 Webjob 将被复制到一个临时目录(例如 %TEMP%\jobs\{job type}\{job name}\{random name}
),对于 运行,此时您的日志文件将位于临时文件夹下。详情请参考WebJob Working Directory.
根据您的要求,您可以利用 log4net.Util.PatternString 并使用 env
转换模式来检索 David Ebbo 建议的环境变量 (WEBROOT_PATH
)。您需要按如下方式更改路径:
<file type="log4net.Util.PatternString" value="%env{WEBROOT_PATH}\App_Data\Logs\WebJobLog.log" />
此外,您可以通过编程方式创建 FileAppender
,对于这种方法,您可以参考此 issue. Moreover, you could check the build-in logging for webjobs here。