gpt4 book ai didi

logging - 日志文件流是否应该在每次写入时打开/关闭,还是在桌面应用程序的生命周期内保持打开状态?

转载 作者:行者123 更新时间:2023-12-02 05:46:40 25 4
gpt4 key购买 nike

日志类是否应该在每次写入日志文件时打开/关闭日志文件流,还是应该在应用程序的整个生命周期中保持日志文件流打开,直到所有日志记录完成?

我是在桌面应用程序的上下文中询问的。我见过人们采用这两种方法,并且想知道哪种方法可以为记录器带来最佳的全面结果。

最佳答案

如果您经常进行读/写,则通过单次打开/关闭使文件在整个生命周期内保持打开状态会更有效。

不过,您可能希望定期或在每次写入后刷新。如果您的应用程序崩溃,您可能无法将所有数据写入文件。在基于 Unix 的系统上使用 fflush,在 Windows 上使用 FlushFileBuffers。

如果您也在 Windows 上运行,则可以使用带有 FILE_FLAG_NO_BUFFERING 的 CreateFile API 在每次写入时直接转到文件。

最好在整个生命周期中保持文件打开因为如果文件正在使用,每次打开/关闭时都可能会失败。例如,您可能有一个在备份文件时运行并打开/关闭文件的备份应用程序。这可能会导致您的程序无法访问您自己的文件。理想情况下,您希望始终保持文件打开状态并在 Windows 上指定共享标志 (FILE_SHARE_READ)。在基于 Unix 的系统上,共享将是默认设置。

关于logging - 日志文件流是否应该在每次写入时打开/关闭,还是在桌面应用程序的生命周期内保持打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/164053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com