From f387b7bf04fc69ccc0f95d5670c19000a6006e21 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Tue, 5 May 2015 14:27:09 -0700 Subject: [PATCH] include package namespace and line number in logger output --- wakatime/logger.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/wakatime/logger.py b/wakatime/logger.py index 62ed9ad..fdae903 100644 --- a/wakatime/logger.py +++ b/wakatime/logger.py @@ -9,6 +9,7 @@ :license: BSD, see LICENSE for more details. """ +import inspect import logging import os import sys @@ -47,14 +48,19 @@ class JsonFormatter(logging.Formatter): def format(self, record): data = OrderedDict([ ('now', self.formatTime(record, self.datefmt)), - ('version', self.version), - ('plugin', self.plugin), - ('time', self.timestamp), - ('isWrite', self.isWrite), - ('file', self.targetFile), - ('level', record.levelname), - ('message', record.msg), ]) + try: + data['package'] = inspect.stack()[9][0].f_globals.get('__package__') + data['lineno'] = inspect.stack()[9][2] + except: + pass + data['version'] = self.version + data['plugin'] = self.plugin + data['time'] = self.timestamp + data['isWrite'] = self.isWrite + data['file'] = self.targetFile + data['level'] = record.levelname + data['message'] = record.msg if not self.plugin: del data['plugin'] if not self.isWrite: