如何在 Java 或其他平台中创建 logrotate 友好的文件编写器?

2024-02-12

在 Java 中实现与以下兼容的文件编写器/记录器的最佳实践是什么对数旋转 http://linux.die.net/man/8/logrotate?目标是允许 logrotate 用于所有日志管理,而不是使用日志记录 API(Log4J 等)的内置轮换/管理。

我有兴趣听到除 Java 之外的其他开发平台的评论/答案。


您只需定期关闭并重新打开应用程序内的日志文件即可。您需要一个保留最后关闭时间的处理程序。如果(例如)自上次关闭以来已过去 20 秒并且即将写入日志条目,则处理程序应关闭并重新打开文件。它应该在写入日志条目之前进行这样的检查

如果不这样做,日志将被写入旧文件,即使它被 logrotate (!) 重命名(文件描述符保持不变),然后当日志被压缩和删除时,日志条目将消失(在这种情况下,java 将默默地删除此类日志)。

关闭并重新打开日志(使用文件名)将确保如果文件已重命名,则会创建一个新文件。每次写入日志时关闭并重新打开文件是一种矫枉过正的行为,因为打开文件是一项成本高昂的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java 或其他平台中创建 logrotate 友好的文件编写器? 的相关文章

随机推荐

  • 使用 Java 访问 JSONArray 中项目的成员

    我刚刚开始在 java 中使用 json 我不确定如何访问 JSONArray 中的字符串值 例如 我的 json 如下所示 locations record id 8817 loc NEW YORK CITY id 2873 loc UN
  • EnumResourceNames 问题 - 未知错误

    我最近正在使用辅助库 二进制模块中的资源 并遇到了一个奇怪的错误 我有两个本机 WinAPI 参考 DllImport kernel32 dll SetLastError true public extern static bool Enu
  • Android Lollipop 问题 - 无法将图像从相机加载到 ImageView

    在 android lollipop 之前的任何版本上 下面的代码都可以正常工作 由于某种原因 从 Android 的某个版本 大约 5 0 开始 每当从相机捕获图像时 屏幕都会向右和向后旋转 90 度 不仅我的设备上的自动旋转关闭 我的活
  • Eclipse 插件:将 Launch 命令组添加到 Custom Perspective

    我在网上查找了很多教程 但很难找到与 Launches 相关的任何内容 我正在实现一个 IDE 插件 该插件实现了自定义透视图 但除了 运行最后一个工具 按钮之外 我看不到任何 运行 或 调试 工具栏按钮 每次启动透视图时 我都需要进入 自
  • 在 MEF 中组合零件后自动调用方法

    有没有办法指定在组成部分后自动调用方法 该方法可以在组合部分或进行组合的类中调用 是的 如果你的类实现了IPartImports满意通知 http msdn microsoft com en us library system compon
  • 有没有适用于 Android 的照片库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 由于Android中的内置照片库小部件不够好 很容易崩溃 我正在寻找第3方照片库库 如果您有好的选择请
  • 使用下拉菜单填充表单 - Access

    我正在尝试在访问中创建一个表单 该表单在顶部有一个下拉菜单 并将使用与所选内容相对应的记录填充表单的其余部分 我在网上查看了 2 个不同的指南 但都指向旧版本的 Access 我认为我遗漏了一些东西 所以 我做所有事情的顺序 我走到桌边拿表
  • Web Api 属性路由中的可选参数

    我想处理以下 API 调用的 POST v1 location deviceid appid 附加参数来自 Post Body 这一切对我来说都很好 现在我想通过允许 设备 id 和 或 应用程序 id 和 或正文数据为空来扩展我的代码 v
  • 需要获取文本文件中匹配字符串的行号

    我需要使用 PHP 获取文本文件的行号 我需要的线路是 想要这条线路 我尝试使用 file 将文件行放入数组中并使用 array search 进行搜索 但它不会返回行号 在此示例中 我需要返回 3 作为行号 file file file
  • PrimeFaces commandButton actionListener 未触发

    我无法获取我的actionListener in a
  • 如何从本地存储获取文件(pdf、jpg、docs)并创建文件[重复]

    这个问题在这里已经有答案了 我尝试使用意图数据 uri 创建文件 要创建文件 我开始这样的意图 val intent Intent Intent ACTION GET CONTENT apply addCategory Intent CAT
  • 使用程序检查已安装的软件

    我们需要创建一个程序 实际上我们被要求创建一个软件许可合规工具 我们如何检查机器内安装的软件 是通过注册表吗 在搜索时我看到一篇文章说我们需要研究 HKLM 的 卸载 子项 另外 我们是否还可以获得有关软件是否是免费软件 共享软件 从注册表
  • js中如何将数据更新到文件中的特定位置

    我有一个包含数据的文件如下 Test txt
  • 在 UWP 和 ASPNETCORE 应用程序上使用哪些类库作为参考

    我想创建一个可在我的 aspnetcore 应用程序和 uwp 应用程序上使用的类库 如果我错了 请纠正我 按照我理解下图 第一张图 的方式 我可以创建一个 net core 类库并让它引用 uwp 和 aspnetcore 我所做的是我创
  • 如何在 Intellij IDEA 参数中使用通配符

    我使用尝试在运行配置中添加参数 I add master sequential pg txt 但当我开始跑步时 错误就出来了 usr local go bin go run home asus dev 6 824 src main wc g
  • 在 git 中将文件夹部署到分支的最简单方法是什么?

    我的文件夹里有一个master分支命名public 将其内容复制到不同分支的根目录的最简单方法是什么 例如gh pages 一个非常好的技巧如图所示在子模块中生成 GitHub 页面 http blog blindgaenger net g
  • 仅电子邮件应用程序可解析 Intent

    我有一个问题 我只想通过电子邮件活动来解决意图 ACTION SEND 但除了电子邮件之外 我还得到其他应用程序 例如 TubeMate 即使我已将 mime 类型设置为 message rfc822 知道如何我可以获取电子邮件应用程序来解
  • JobControl 和 JofConf.setMapperClass() 错误

    我正在尝试使用JobControl将多个Mappers和Reducers连接在一起但调用时遇到以下错误JobConf setMapperClass setMapperClass java lang Class
  • 指向成员函数的指针错误[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 当我编译以下代码时 出现以下错误 谁能帮我解决这个问题 谢谢 错误 ISO C 禁止使用绑定成员函数的地址来形成指向成员
  • 如何在 Java 或其他平台中创建 logrotate 友好的文件编写器?

    在 Java 中实现与以下兼容的文件编写器 记录器的最佳实践是什么对数旋转 http linux die net man 8 logrotate 目标是允许 logrotate 用于所有日志管理 而不是使用日志记录 API Log4J 等