Add fallback log engine
Make compatible with MSVC
Move funtion definitions in cpp file