使用NLog向Seq输出日志时,如何配置可变量化的Seq URL
使用NLog向Seq输出日志时,如何配置可变量化的Seq URL
我太懂这种配置卡壳的憋屈感了!你试的两种思路其实方向完全没问题,问题就出在NLog的语法细节上——你漏掉了布局渲染器最关键的$符号,导致配置根本没被正确解析。
给你修正后的正确配置方案:
方法一:通过NLog变量中转环境变量
把变量引用的语法改成${变量名}(而不是你之前用的{var:sequri}),让NLog能识别这是一个变量引用:
<variable name="sequri" value="${environment:variable=SeqUri}" /> <target xsi:type="Seq" name="seq" serverUrl="${sequri}" />
方法二:直接在serverUrl中使用环境变量渲染器
同样要补上$符号,明确告诉NLog这是一个需要动态解析的环境变量:
<target xsi:type="Seq" name="seq" serverUrl="${environment:variable=SeqUri}" />
另外给你个实用的排查小技巧:可以临时加个Console目标,把读取到的Seq URL打印出来,确认环境变量是不是真的被正确读取了:
<target xsi:type="Console" name="consoleTest" layout="当前读取的Seq URL:${environment:variable=SeqUri}" />
运行程序后看控制台输出,如果URL是空或者格式不对,那得先检查环境变量SeqUri有没有正确设置,值是不是符合http://你的Seq服务器地址:5341这种标准格式。
内容来源于stack exchange
相关产品推荐
相关产品推荐

