Log4Net 中需要 DayOfYear

发布于 2024-10-23 12:21:02 字数 654 浏览 3 评论 0原文

在 log4j 中,您可以使用 %d{DDD:HHmmss} 的日期模式,其中 DDD 是一年中的某一天。我需要在我们的 C# 应用程序中执行等效类型的模式,但我不知道如何使其工作。 DataTime ToString 似乎没有年份的格式化程序,但它确实有一个名为 DateTime.DayOfYear 的属性。有人知道如何在 log4net 中设置日期模式吗?非常感谢任何建议。

更清楚地说,我真的想找到一个 log4net 模式在我的 App.Config 中使用,它将格式化日志文件中输出的日期部分。也就是说,在我的附加程序中的 App.Config 中,我有:

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%d{MMdd-HHmmss} %-5.5p %c{1}:%L - %m%n" />
</layout>

这输出类似:

0319-175824 INFO  Program:33 - Entering Main Method

希望它输出:

078-175824 INFO  Program:33 - Entering Main Method

In log4j you could use a date pattern of %d{DDD:HHmmss} where the DDD would be the Day Of Year. I need to do an equivalent type of pattern in our C# app and I cannot figure out how to get this working. DataTime ToString doesn't seem to have a formatter for Day Of Year but it does have a property for it call DateTime.DayOfYear. Anyone know how to get my date pattern set with day of year in log4net? Any advice is much appreciated.

To be clearer, I am really trying to find a log4net pattern to use in my App.Config that will format the date part of the output in the logfile. To wit in my App.Config within my appender I have:

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%d{MMdd-HHmmss} %-5.5p %c{1}:%L - %m%n" />
</layout>

This outputs something like:

0319-175824 INFO  Program:33 - Entering Main Method

Would like it to output:

078-175824 INFO  Program:33 - Entering Main Method

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

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

发布评论

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

评论(1

遥远的她 2024-10-30 12:21:02

您可以创建自己的 DateTimeDateFormatter 的实现,输出您需要的格式。

FormatDate 看起来像您想要的方法覆盖。

或者,您可以注入包含 DateTime.DayOfYear 的属性并使用 属性语法%property{doy}

log4net.GlobalContext.Properties["doy"] = DateTime.DayOfYear;

You could create your own implementation of DateTimeDateFormatter that outputs the format you require.

FormatDate looks like the method you would want to override.

Alternatively, you could inject a property containing DateTime.DayOfYear and reference it using the property syntax %property{doy}

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