tokens: If you do decide to stick with your own logger I would say that you should start by making it a singleton with several logwriters attached to log levels , you then setup a non-blocking queue for each logger ( there are tons of examples of this out there ) and simply call log(logLevel, logOrigin, logMessage) and under the hood send this to each logwriter , which would be a non-blocking queue that runs on a thread for each logwriter .
ner_tags: O O O O O O O O O B-Application O O O O O O O O O O O O O O O O O O O O O O O O O B-Data_Structure O O B-Application O O O O O O O O O O O O O O B-Function I-Function I-Function O O O O O O O O B-Class O O O O O O B-Data_Structure O O O O O O O B-Class O