-
Write a C++ class, which can be used to output application log messages to multiple outputs.
-
Focus both on the quality of the code and to the usability of the class (API).
-
Send your solution in a ZIP package containing the following contents:
- source code, solution and project files.
- executable that is outputting log messages.
- instructions how to compile.
- list of 3rd party dependencies, if any.
- brief description of the work sample including rationale behind the implementation, as well as its possible shortcomings and known issues.
- ideas for further development.
- Implementation language is C++ (with C++14 features available).
- The logger needs to support multiple threads.
- The logger needs to be able to support multiple outputs (file, console etc.).
- The logger needs to be able to support outputting user types.
- The logger class API needs to be documented and validated with unit test(s).
- The executable code should work either on Windows (preferred), Mac OS X or Linux.