
* Nat Goodspeed
I typically need to see full detail for some two or three interacting subsystems, without any of the log output from any other subsystems.
i'm using another orthogonal filtering facility - context. for example i want to dump only control messages exchanged between components of the program.
In homebrew logging systems, I usually associate a string tag with each log statement. The string tag is looked up on first reaching the statement, and every subsequent visit tests a cached bool.
When the logging system initializes, it reads config info (from a file or registry data) to enable/disable particular string tags. I usually
could you show me perhaps some of your config files? just for inspiration... how do you force reload of config? on unix i'd use a signal, but to be honest, have no big clue about windows...
You can get fancier still by defining relationships between string tags, it' always easier to blob up the design ;)
Going further out on a limb, and again speaking only for myself, I've always found that logging "level" doesn't map well to my needs.
- hardly any useful information - not enough useful information - too much information - WAY too much information
i admit you have point there. i was in situations where simple level
was not enough. that's why i planned to add another run-time filtering
facility; for example you could define your facilities like that:
namespace flog {
unsigned const bit_all = bin<11111111>::value;
unsigned const bit_trace = bin<00000001>::value;
unsigned const bit_hedumps = bin<00000010>::value;
unsigned const bit_dataflow = bin<00000100>::value;
...
unsigned const bit_synchro = bin<10000000>::value;
/**@class default_filters
* @brief sequence of default filters used for text formatting
*/
typedef runtime_flt