log4z icon indicating copy to clipboard operation
log4z copied to clipboard

DynamicCreateLogger 接口缺失

Open yapingxin opened this issue 6 years ago • 2 comments

在 FAQ( https://github.com/zsummer/log4z/wiki/LOG4Z-1.2.1-FAQ )中提到:

  1. 我想添加一个额外的日志记录器 怎么做?

回答: 调用接口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。

yapingxin avatar Jun 11 '18 06:06 yapingxin

createLogger,findLogger,openLogger,onHotChange 都加一把相同的锁. 加锁的方式参见LockHelper _scLock; 这样就可以先用起来了. 最近一直忙的都没时间睡好觉 暂时没时间维护了.

zsummer avatar Jun 11 '18 16:06 zsummer

谢谢你!

yapingxin avatar Jun 12 '18 11:06 yapingxin