如何使用 Log4net RolloverFileAppender 在应用程序启动时强制翻转?

2024-04-24

在我们的应用程序中配置 Log4Net 以使用带日期标记的名称和 10Meg 文件大小限制。
这会在午夜以及每当达到 10Meg 限制时自动转存到新文件。 我还想在每次启动(或关闭)应用程序时将日志记录到一个新文件。
我可以获得所有三种翻转行为吗?


Set 附加到文件 http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.AppendToFile.html在你的配置文件中设置为 false 。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
....
  <appendToFile value="false" />
....
</appender>

编辑:回答克雷格的评论:

如果正确设置 StaticLogFileName 和 CountDirection(请参阅http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html了解更多),然后事情就会按需要进行。我们以编程方式在我们使用它的应用程序中配置记录器,但代码如下所示:

Dim Layout As New PatternLayout("%date{yyyy-MM-dd HH:mm:ss,fff} [%-6thread] %-5level %type{2}.%method(%line) - %message%newline") 
Dim Appender As New log4net.Appender.RollingFileAppender()
Appender.File = Path.Combine(FileSystemHelper.LogDirectory, LogFileName)
Appender.Layout = Layout
Appender.AppendToFile = False ' we will start a new one when the program starts'
Appender.Name = "RollingLogFileAppender"
Appender.Threshold = LogLevel() 'May want to set this by configuration'
Appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size 'This means it will start a new log file each time the log grows to 10Mb'
Appender.MaximumFileSize = "10MB"
Appender.MaxSizeRollBackups = -1 'keep an infinite number of logs'
Appender.StaticLogFileName = True
Appender.CountDirection = 1 ' to reduce rollover costs'
log4net.Config.BasicConfigurator.Configure(Appender)
Appender.ActivateOptions()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Log4net RolloverFileAppender 在应用程序启动时强制翻转? 的相关文章

  • log4net RollingFileAppender 和 IIS 7.5

    我正在尝试在 IIS 7 5 Server 2008 R2 上将 log4net 与 RollingFileAppender 一起使用 然而 我的旧 IIS 6 Server 2003 盒子中的配置似乎不再起作用 我根本没有看到任何日志文件
  • log4net - 想要为每个Web应用程序用户创建一个日志文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们在 Asp Net Web 应用程序中使用 log4net 替换 nLog nLog 有一个有用的功能 允许我们为每个用户创建一个
  • 获取类的完全限定名称?

    所有 我有一个 log4net 实现 我正在尝试使用AdoNetAppender 但子元素之一appender配置是connectionType它需要一个完全限定的类名 例如System Data SqlClient SqlConnecti
  • System.Diagnostics.Debug 命名空间与其他日志记录解决方案(log4net、MS Enterprise Library 等)

    我目前正在研究 net 项目的各种日志记录可能性 但我无法在 System Diagnostics Debug Trace 功能和第三方库 如 log4net MS Enterprise Library NLog 等 之间做出决定 目前我已
  • 为什么记录器建议每个类使用一个记录器?

    根据 NLog 的文档 大多数应用程序将为每个类使用一个记录器 其中记录器的名称与类的名称相同 这与 log4net 的操作方式相同 为什么这是一个好的做法 使用 log4net 每个类使用一个记录器可以轻松捕获日志消息的来源 即写入日志的
  • 程序集未加载 C#

    我有一个项目Common其中包含一个 log4net CustomAppender 我在所有其他项目中引用该项目并在中配置 log4net 附加程序app config 一切都很顺利 除了一个项目在尝试实例化 Appender 时失败了 输
  • Log4Net 多个项目

    我在用log4net在我们的解决方案之一中 该解决方案包含多个项目 每个项目一个单元测试项目 我正在使用中描述的方法这个帖子 http blog falafel com Blogs josh eastburn 2012 04 10 usin
  • Log4Net 不工作

    我正在 Windows XP 中以管理员用户身份使用 C 开发 NET Framework 3 5 并使用 log4net 进行 NET Framework 2 0 二进制引用 我曾尝试过log4net 缺少什么 未创建日志文件 https
  • Log4net keepLo​​gFileNameExtension 不起作用

    这是我的 log4net 配置 滚动日志文件创建的扩展名错误 第一个文件使用 log debug txt 名称创建 滚动文件使用 log debug txt 1 创建 但理想情况下它应该是 log debug 1 txt 我使用preser
  • 使用多个 log4net 文件记录器

    我有文件附加器 FileA FileB 和 FileC 我将 FileA 添加到根元素 因为我希望它成为一个包罗万象的元素 下面将详细介绍 我将 FileB 和 FileC 用于特定消息 并为每个附加程序创建命名记录器 在代码中 我加载用于
  • C# 项目,编译器抱怨缺少对 log4net 的引用

    我正在使用 Visual Studio 2017 构建一个大型 C 项目 解决方案中有 200 多个项目 在编译其中一个项目时 我遇到了很多错误 如下所示 error CS0012 The type BufferingAppenderSke
  • log4net 是否会杀死我的 WCF 单元测试?

    我的解决方案中有三个项目 提供我想要测试的功能的 WCF Web 服务 调用该 Web 服务的 Web 应用程序 对服务运行测试的测试项目 Web 服务和 Web 应用程序都使用 log4net 和单独的配置文件 并在 AssemblyIn
  • 无法让 log4net 与 .net windows 服务一起使用

    我有一个 Windows 服务app config and a log4net config app config
  • 使用 Loggly 时在 log4net 中指定应用程序名称

    我正在测试几个 ASP NET Web 应用程序 并使用 Log4net 的附加程序通过 Loggly 设置它们 现在 日志记录似乎没问题 但我似乎找不到一种方法 使用 log4 loggly 附加程序 来指定应用程序名称 以便当我在 Lo
  • App 对象中的 Log4Net?

    我正在开始在 WPF 桌面应用程序中进行日志记录 使用 Log4Net 作为日志记录组件 这是我的问题 在一个简单的桌面应用程序中 是否有任何理由不将我的记录器实例化为 App 类 App xaml cs 的属性 就像这样 public p
  • 我在这个 log4net 实现中做错了什么?

    与许多其他人一样 我正在尝试将 Log4net 实现到我的 C net 应用程序中 但我无法让它为我工作 我已经做了很多搜索 包括在这个网站上 并尝试了许多不同的解决方案 但还没有任何对我有用的解决方案 所以简单的问题是 我做错了什么 As
  • log4net 配置[程序集:]

    我很好奇以下行如何在程序集中配置 log4net assembly log4net Config XmlConfigurator Watch true 我猜这会在运行时调用 main 之前的某个时间被调用 但是这种情况什么时候发生 有什么影
  • 如何在 C# 中重构 log4net 语句?

    好吧 读完丹本对此的回答后post https stackoverflow com questions 2230180 whats log4j actually doing when we turn on or off some log p
  • 记录时何时出现致命错误?

    在 log4j 和 log4net 等日志框架中 您可以记录各种级别的信息 大多数级别都有明显的意图 例如 调试 日志与 错误 日志是什么 然而 我一直害怕的一件事是将我的日志记录归类为 致命 哪种类型的错误如此严重以至于应被归类为致命错误
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log

随机推荐