【发布时间】:2013-12-20 19:35:21
【问题描述】:
我正在考虑创建一个具有专用线程的异步日志记录组件,该线程将从队列中读取新项目并写入数据库、文件等。如果我创建一个线程作为后台线程,它将在进程结束后立即终止结束,因此队列中的所有项目都将丢失。如果我创建它是一个前台 - 我将不得不弄清楚何时停止它,因为它会阻止应用程序关闭。有什么方法可以不让开发人员记住在应用程序退出之前“停止”日志记录功能?
【问题讨论】:
-
一开始就不要创建一个专门的线程来管理它......它将花费大部分时间什么都不做。这对于日志框架来说是相当浪费的。就此而言,首先要避免编写自己的日志框架;这是一个复杂的问题,已经有许多解决方案可供您使用。
-
这个其他问题可能会回答您的问题:How do I create an asyncronous wrapper for log4net?
标签: c# multithreading logging asynchronous