Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynamicCreateLogger 接口缺失 #59

Open
yapingxin opened this issue Jun 11, 2018 · 2 comments
Open

DynamicCreateLogger 接口缺失 #59

yapingxin opened this issue Jun 11, 2018 · 2 comments

Comments

@yapingxin
Copy link

在 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。

@zsummer
Copy link
Owner

zsummer commented Jun 11, 2018

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

@yapingxin
Copy link
Author

谢谢你!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants