在日志应用程序块中将日期添加到日志文件名

发布于 2024-08-29 01:10:32 字数 242 浏览 6 评论 0原文

我正在使用 Microsoft 日志应用程序块(版本 5 beta 2),并且尝试将日志文件的文件名动态设置为年月日(然后每天写入一个新的日志文件)。但是,在运行时,记录器会忽略任何动态环境变量,例如 %date%、%time% 或 %cd%。我可以将静态环境变量添加到文件名(例如%username%),但不能添加动态环境变量。有谁知道如何让滚动平面文件跟踪侦听器动态设置日志文件名中的日期?

(这就是我将文件名设置为:Log_%date%.log)

I'm using the Microsoft Logging Application Block (version 5 beta 2) and I'm trying to dynamically set the file name of a log file to the year month and day (and then write a new log file every day). However, at runtime, the logger ignores any dynamic environment variables such as %date%, %time%, or %cd%. I can add static environment variables to the file name (such as %username%), but not dynamic environment variables. Does anyone know how to get the rolling flat file trace listener to dynamically set the date in the log file name?

(this is what I was setting the File Name as: Log_%date%.log)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

腻橙味 2024-09-05 01:10:32

@Robertc,我知道这个问题已被标记,但我想我有一个技巧可以用于你的下一个项目:使用你自己的环境变量!

例如
在对日志块进行任何调用之前

Environment.SetEnvironmentVariable("MYDATE", "15/07/2010"); // << change the hardcoded date to get from DateTime
Debug.WriteLine (Environment.ExpandEnvironmentVariables(@"c:\Log\Log_%MYDATE%.log"));

在 app.config 中的相应滚动平面文件跟踪侦听器中

FileName=Log_%MYDATE%.log

注意:只有每天重新启动应用程序,此技巧才会起作用。

@Robertc, I know this question has been marked but I think I have a trick that you can use for your next project : Use your own environment variable!

E.g.
Before you make any call to the Logging Block

Environment.SetEnvironmentVariable("MYDATE", "15/07/2010"); // << change the hardcoded date to get from DateTime
Debug.WriteLine (Environment.ExpandEnvironmentVariables(@"c:\Log\Log_%MYDATE%.log"));

In your app.config, in the appropriate Rolling flat file trace listener

FileName=Log_%MYDATE%.log

Note: This trick will only work if you restart your application daily.

请别遗忘我 2024-09-05 01:10:32

我放弃了日志应用程序块并切换到 log4net。 Log4net 允许我使用 web.config 设置将日志名称设置为今天的日期。我在代码项目上写了一篇文章,展示了如何让 log4net 与策略注入应用程序块一起使用 这里

I gave up on the Logging Application Block and switched to log4net. Log4net lets me set the name of the log to today's date with a web.config setting. I wrote an article on Code Project that shows how to get log4net working with the Policy Injection Application Block here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文