我觉得这个实现,基本达到了你预想的目的,比我想想要效率高。因为 isInfoEnabled() 每次调用,都直接返回。
我觉得这个 Log 实现是有意义的,完全可以应用到有生产环境中。
1. Log4jAdapter.initLevelStuff 这种实现方式,我觉得长函数也不错,因为代码虽然冗余,但是效率是最高的。 而这里效率是第一位的
2. 虽然我想,写一个通用的反射 LogAdaptor 能一劳永逸,但是会增加其他人的学习曲线, 所以可能意义并不大
总之,我觉得这个代码实现的很完美了,基本没什么可以改进的了。
下面,我们需要一个列表,展示出 Nutz 在哪个地方需要添加 Log
我先抛砖引玉:
Dao:
> DEBUG: NutDao.public void execute(final Sql... sqls)
> INFO : NutDao.checkDatabase()
> INFO : EntityHolder.getEntity(Class<T> klass, DatabaseMeta meta)
Ioc:
> INFO: NutIoc.addValueProxyMaker(ValueProxyMaker vpm)
> DEBUG: NutIoc.get(Class<T> type, String name, IocContext context)
> DEBUG: ObjectMakerImpl.make(IocMaking ing, IocObject iobj)
Mvc:
> INFO : NutServlet.init
> INFO : NutServlet.destroy
> INFO : NutServlet.service(HttpServletRequest req, HttpServletResponse resp)
> INFO : UrlMapImpl.add(List<ViewMaker> makers, Class<?> moduleType)
这些函数被调用时,需要添加至少一条 Log 信息