在每个新日志文件创建开始时编写应用程序版本

时间:2014-03-25 10:18:07

标签: c# .net-3.5 log4net

我在net 3.5中使用log4net。现在我想要的是每次我的应用程序创建一个新的日志文件时,应该在日志文件中打印应用程序的版本号。

PS:我知道如何获取版本号,但每次创建新日志文件时如何写入日志文件?

1 个答案:

答案 0 :(得分:1)

如果可以在您的appender的布局中定义标题:

<layout type="log4net.Layout.PatternLayout">
    <header>This is the header</header>
    <conversionPattern value="%date %level %logger - %message%newline" />
</layout>

该值将由TextWriterAppender类使用(FileAppenderRollingFileAppender派生自

但是标题是固定的,不会评估自定义数据。自定义标题的最快方法是实现自己的布局并在Header属性中设置版本号。

public class CustomLayout : log4net.Layout.PatternLayout
{
    //inheriting from PatternLayout to minimize changes
    public override string Header
    {
        get
        {
            return "version 1.0.0"; // or however you will retrieve it
        }
        set
        {
            base.Header = value;
        }
    }
}

然后更改您的配置以引用CustomLayout类型

<layout type="namespace.to.your.CustomLayout">
    <header>This header will be ignored</header>
    <conversionPattern value="%date %level %logger - %message%newline" />
</layout>

您甚至可以在header属性中添加一些格式,以便能够记录日期等内容。