def loggerInit(): pylog.reset() layout = pylog.ColorLayout(True, 'ABSOLUTE') appenderConsole = pylog.ConsoleAppender(layout) appenderConsole.setOption("target", pylog.ConsoleAppender.getSystemErr()) appenderConsole.activateOptions() logger = pylog.get_root() logger.addAppender(appenderConsole)
def init_logger(): layout = pylogging.ColorLayout(True) appender = pylogging.ConsoleAppender(layout) appender.setOption("target", pylogging.ConsoleAppender.getSystemErr()) appender.activateOptions(pylogging.Pool()) l = pylogging.get_root() pylogging.set_loglevel(l, pylogging.LogLevel.DEBUG) l.addAppender(appender)
def loggerSetLevel(loglevel): # compatibility to old log levels assert loglevel < 5, 'invalid log level' logLevelList = [ pylog.LogLevel.ERROR, pylog.LogLevel.WARN, pylog.LogLevel.INFO, pylog.LogLevel.DEBUG, pylog.LogLevel.TRACE ] logger = pylog.get_root() pylog.set_loglevel(logger, logLevelList[loglevel])
def test_reset(self): logger.log_to_cout(logger.LogLevel.WARN) logger1 = logger.get("test") logger2 = logger.get("xyz") logger.reset() self.assertEqual(0, logger1._get_number_of_appenders()) self.assertEqual(0, logger2._get_number_of_appenders()) self.assertEqual(0, logger.get_root()._get_number_of_appenders())
def test_reset(self): logger.log_to_cout(logger.LogLevel.WARN) logger1 = logger.get("test"); logger2 = logger.get("xyz"); logger.reset() self.assertEqual(0, logger1._get_number_of_appenders()) self.assertEqual(0, logger2._get_number_of_appenders()) self.assertEqual(0, logger.get_root()._get_number_of_appenders())
def loggerAppendFile(filename): global appenderFile, filenameLogger if appenderFile is None: layout = pylog.ColorLayout(False, 'ABSOLUTE') appenderFile = pylog.FileAppender(layout, filename, False) logger = pylog.get_root() logger.addAppender(appenderFile) filenameLogger = filename elif filename != filenameLogger: raise Exception('Change of logfile not supported yet!')
def test_msg(print_location, date_format): pylogging.reset() layout = pylogging.ColorLayout(True, date_format) layout.setOption("printlocation", str(print_location).lower()) layout.activateOptions() appender = pylogging.ConsoleAppender(layout) appender.setOption("target", pylogging.ConsoleAppender.getSystemErr()) appender.activateOptions() l = pylogging.get_root() pylogging.set_loglevel(l, pylogging.LogLevel.DEBUG) l.addAppender(appender) l = pylogging.get("manual_config") l.warn("time format: {}".format(date_format))
def test_append_to_logging(self): # Store all Python logging messages in the "records" list import logging records = [] class Handler(logging.Handler): def emit(self, record): records.append({ "name": record.name, "msg": record.msg, "levelno": record.levelno }) root_logger = logging.getLogger("") root_logger.addHandler(Handler()) root_logger.setLevel(logging.NOTSET) # Log messages to the "root" logger logger.append_to_logging("root") self.assertEqual(1, logger.get_root()._get_number_of_appenders()) # Create two test loggers logger1 = logger.get("test1") logger.set_loglevel(logger1, logger.LogLevel.TRACE) logger2 = logger.get("test2") logger3 = logger.get("test2.test3") logger1.FATAL("msg1") logger1.ERROR("msg2") logger1.WARN("msg3") logger1.INFO("msg4") logger1.DEBUG("msg5") logger1.TRACE("msg6") logger2.FATAL("msg1") logger2.ERROR("msg2") logger2.WARN("msg3") logger2.INFO("msg4") logger2.DEBUG("msg5") logger2.TRACE("msg6") logger3.FATAL("msg1") logger3.ERROR("msg2") logger3.WARN("msg3") logger3.INFO("msg4") logger3.DEBUG("msg5") logger3.TRACE("msg6") self.assertEqual([{ 'msg': 'msg1', 'levelno': 50, 'name': 'root.test1' }, { 'msg': 'msg2', 'levelno': 40, 'name': 'root.test1' }, { 'msg': 'msg3', 'levelno': 30, 'name': 'root.test1' }, { 'msg': 'msg4', 'levelno': 20, 'name': 'root.test1' }, { 'msg': 'msg5', 'levelno': 10, 'name': 'root.test1' }, { 'msg': 'msg6', 'levelno': 10, 'name': 'root.test1' }, { 'msg': 'msg1', 'levelno': 50, 'name': 'root.test2' }, { 'msg': 'msg2', 'levelno': 40, 'name': 'root.test2' }, { 'msg': 'msg3', 'levelno': 30, 'name': 'root.test2' }, { 'msg': 'msg4', 'levelno': 20, 'name': 'root.test2' }, { 'msg': 'msg5', 'levelno': 10, 'name': 'root.test2' }, { 'msg': 'msg1', 'levelno': 50, 'name': 'root.test2.test3' }, { 'msg': 'msg2', 'levelno': 40, 'name': 'root.test2.test3' }, { 'msg': 'msg3', 'levelno': 30, 'name': 'root.test2.test3' }, { 'msg': 'msg4', 'levelno': 20, 'name': 'root.test2.test3' }, { 'msg': 'msg5', 'levelno': 10, 'name': 'root.test2.test3' }], records)
def test_file_logging_with_filter(self): logger1 = logger.get("test") logger2 = logger.get("xyz") logger3 = logger.get("xyz.test") logger.set_loglevel(logger1, logger.LogLevel.WARN) logger.set_loglevel(logger2, logger.LogLevel.DEBUG) logger.set_loglevel(logger3, logger.LogLevel.INFO) # Test different filter log = os.path.join(self.temp, 'test_file_logging_with_filter.log') app = logger.append_to_file(log, logger.get_root()) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.DEBUG) f.setLevelMax(logger.LogLevel.WARN) app.addFilter(f) log2 = os.path.join(self.temp, 'test_file_logging_with_filter2.log') app = logger.append_to_file(log2, logger.get_root()) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.ERROR) f.setLevelMax(logger.LogLevel.FATAL) app.addFilter(f) log3 = os.path.join(self.temp, 'test_file_logging_with_filter3.log') app = logger.append_to_file(log3, logger2) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.ERROR) f.setLevelMax(logger.LogLevel.FATAL) app.addFilter(f) for l in (logger1, logger2, logger3): logger.LOG4CXX_FATAL(l, "FATAL") logger.LOG4CXX_ERROR(l, "ERROR") logger.LOG4CXX_WARN(l, "WARN") logger.LOG4CXX_INFO(l, "INFO") logger.LOG4CXX_DEBUG(l, "DEBUG") logger.LOG4CXX_TRACE(l, "TRACE") logger.reset() with open(log) as f: expected = """WARN test WARN WARN xyz WARN INFO xyz INFO DEBUG xyz DEBUG WARN xyz.test WARN INFO xyz.test INFO """ self.assertEqualLogLines(expected, f.read()) with open(log2) as f: expected = """FATAL test FATAL ERROR test ERROR FATAL xyz FATAL ERROR xyz ERROR FATAL xyz.test FATAL ERROR xyz.test ERROR """ self.assertEqualLogLines(expected, f.read()) with open(log3) as f: expected = """FATAL xyz FATAL ERROR xyz ERROR FATAL xyz.test FATAL ERROR xyz.test ERROR """ self.assertEqualLogLines(expected, f.read())
def test_append_to_logging(self): # Store all Python logging messages in the "records" list import logging records = [] class Handler(logging.Handler): def emit(self, record): records.append({ "name": record.name, "msg": record.msg, "levelno": record.levelno }) root_logger = logging.getLogger("") root_logger.addHandler(Handler()) root_logger.setLevel(logging.NOTSET) # Log messages to the "root" logger logger.append_to_logging("root") self.assertEqual(1, logger.get_root()._get_number_of_appenders()) # Create two test loggers logger1 = logger.get("test1"); logger.set_loglevel(logger1, logger.LogLevel.TRACE) logger2 = logger.get("test2"); logger3 = logger.get("test2.test3"); logger1.FATAL("msg1") logger1.ERROR("msg2") logger1.WARN("msg3") logger1.INFO("msg4") logger1.DEBUG("msg5") logger1.TRACE("msg6") logger2.FATAL("msg1") logger2.ERROR("msg2") logger2.WARN("msg3") logger2.INFO("msg4") logger2.DEBUG("msg5") logger2.TRACE("msg6") logger3.FATAL("msg1") logger3.ERROR("msg2") logger3.WARN("msg3") logger3.INFO("msg4") logger3.DEBUG("msg5") logger3.TRACE("msg6") self.assertEqual([ {'msg': 'msg1', 'levelno': 50, 'name': 'root.test1'}, {'msg': 'msg2', 'levelno': 40, 'name': 'root.test1'}, {'msg': 'msg3', 'levelno': 30, 'name': 'root.test1'}, {'msg': 'msg4', 'levelno': 20, 'name': 'root.test1'}, {'msg': 'msg5', 'levelno': 10, 'name': 'root.test1'}, {'msg': 'msg6', 'levelno': 10, 'name': 'root.test1'}, {'msg': 'msg1', 'levelno': 50, 'name': 'root.test2'}, {'msg': 'msg2', 'levelno': 40, 'name': 'root.test2'}, {'msg': 'msg3', 'levelno': 30, 'name': 'root.test2'}, {'msg': 'msg4', 'levelno': 20, 'name': 'root.test2'}, {'msg': 'msg5', 'levelno': 10, 'name': 'root.test2'}, {'msg': 'msg1', 'levelno': 50, 'name': 'root.test2.test3'}, {'msg': 'msg2', 'levelno': 40, 'name': 'root.test2.test3'}, {'msg': 'msg3', 'levelno': 30, 'name': 'root.test2.test3'}, {'msg': 'msg4', 'levelno': 20, 'name': 'root.test2.test3'}, {'msg': 'msg5', 'levelno': 10, 'name': 'root.test2.test3'} ], records)
def test_file_logging_with_filter(self): logger1 = logger.get("test"); logger2 = logger.get("xyz"); logger3 = logger.get("xyz.test"); logger.set_loglevel(logger1, logger.LogLevel.WARN) logger.set_loglevel(logger2, logger.LogLevel.DEBUG) logger.set_loglevel(logger3, logger.LogLevel.INFO) # Test different filter log = os.path.join(self.temp, 'test_file_logging_with_filter.log') app = logger.append_to_file(log, logger.get_root()) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.DEBUG) f.setLevelMax(logger.LogLevel.WARN) app.addFilter(f) log2 = os.path.join(self.temp, 'test_file_logging_with_filter2.log') app = logger.append_to_file(log2, logger.get_root()) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.ERROR) f.setLevelMax(logger.LogLevel.FATAL) app.addFilter(f) log3 = os.path.join(self.temp, 'test_file_logging_with_filter3.log') app = logger.append_to_file(log3, logger2) f = logger.LevelRangeFilter() f.setLevelMin(logger.LogLevel.ERROR) f.setLevelMax(logger.LogLevel.FATAL) app.addFilter(f) for l in (logger1, logger2, logger3): logger.LOG4CXX_FATAL(l, "FATAL") logger.LOG4CXX_ERROR(l, "ERROR") logger.LOG4CXX_WARN (l, "WARN") logger.LOG4CXX_INFO (l, "INFO") logger.LOG4CXX_DEBUG(l, "DEBUG") logger.LOG4CXX_TRACE(l, "TRACE") logger.reset() with open(log) as f: expected = """WARN test WARN WARN xyz WARN INFO xyz INFO DEBUG xyz DEBUG WARN xyz.test WARN INFO xyz.test INFO """ self.assertEqualLogLines(expected, f.read()) with open(log2) as f: expected = """FATAL test FATAL ERROR test ERROR FATAL xyz FATAL ERROR xyz ERROR FATAL xyz.test FATAL ERROR xyz.test ERROR """ self.assertEqualLogLines(expected, f.read()) with open(log3) as f: expected = """FATAL xyz FATAL ERROR xyz ERROR FATAL xyz.test FATAL ERROR xyz.test ERROR """ self.assertEqualLogLines(expected, f.read())