【标准c++】日志如何设计和实现?
【标准c++】假如一个面向对象的系统,需要在每个类里增加日志功能,假设每个对象在运行自己方法的时候要记录一些信息到一个日志文件;怎么实现?
1:写一个全局函数,参数是信息(例如string);然后在整个类体系的基类实现一个方法,调用这个函数,而派生类可以继承基类的方法。
2:想把记入日志的功能委托给一个单独的类来做,例如:InfoLog类;这时,怎样在类体系中初始化这个类的对象?
写在构造函数里?那么每个派生类都要在构造函数里暴露基类的接口,说不定还要把InfoLog的构造参数(例如文件名)也暴露出来,满天飞?
用setInfoLog()打补丁?很难控制,容易出错,会出现忘了初始化的情况;
大家在开发过程中是怎么处理这个问题,如果有类似的经验,请不防指点一二~!
先谢谢啦!