logger implementation using custom api

This is the change to add logger implementation using freedom 0.5.0 custom api support. 
Actually, might be better to use a typescript enum here so that the interface is a bit sharper (user of the interface doesn't have to guess the values of the string for level). make sense? 

e.g. `enum Level { DEBUG = 0, INFO = 1, WARNING = 2, ERROR = 3 } `