log4z
log4z copied to clipboard
DynamicCreateLogger 接口缺失
在 FAQ( https://github.com/zsummer/log4z/wiki/LOG4Z-1.2.1-FAQ )中提到:
- 我想添加一个额外的日志记录器 怎么做?
回答: 调用接口DynamicCreateLogger, 然后使用日志输出的时候指定该接口返回的LoggerId. 具体使用参见源代码中提供的advance例子.
然而实际上,在当前(现在是2018年6月11日)的 log4z.h 中,并没有 DynamicCreateLogger 的定义,而且 advance例子中也没有DynamicCreateLogger的例子/
实际上在我的应用中,非常需要DynamicCreateLogger,因为我需要动态地加载一组动态链接库,然后每一个动态链接库都需要创建它自己的loggerId。主程序实现并不知道会加载哪些动态链接库,完全通过用户行为动态决定。(但动态链接库的个数肯定在20个以内)
我尝试着假如不用DynamicCreateLogger,在在决定加载哪些动态链接库时,执行 ILog4zManager::getRef().stop();
然后再通过createLogger创建我需要的所有logger,然后再执行 ILog4zManager::getRef().start();
可是我发现 ILog4zManager 一旦 stop 就无法再 start。
所以我还真是必须要用DynamicCreateLogger。
createLogger,findLogger,openLogger,onHotChange 都加一把相同的锁. 加锁的方式参见LockHelper _scLock; 这样就可以先用起来了. 最近一直忙的都没时间睡好觉 暂时没时间维护了.
谢谢你!