C++ Logger Class Programming Assignment

Instruction:

  • 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.

Requirements

  • 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.