use class name instead of filename to determine callee
removed duplicate key
initial commit logger message class
logger now accepts a logger message object
allow to specify a logger as output destination and other small improvments