def test_findCaller(self): first_line = 116 log_util.info('findCaller测试') # log_util 的获取 log_util.debug(u'请求url:%s', u'http://哈22哈') first_line += 4 log_msg2 = file_util.get_last_lines(logfile) self.assertTrue('请求url:http://哈22哈' in log_msg2) self.assertTrue(' [test_log_util.test_findCaller:%d] ' % first_line in log_msg2) # 原生 logging 的获取 logging.info(u'原生logging测试, 请求url:%s' % u'http://哈哈') first_line += 7 log_msg1 = file_util.get_last_lines(logfile) self.assertTrue('原生logging测试, 请求url:http://哈哈' in log_msg1) self.assertTrue(' [test_log_util.test_findCaller:%d] ' % first_line in log_msg1) # logger 的获取 logger = log_util.getLogger('libs_my.log_util') logger.error(u'请求url:%(url)s, 返回:%(res)s', { 'url': u'http://error哈哈', 'res': ( 1, 2, '112', ) }) first_line += 8 log_msg4 = file_util.get_last_lines(logfile) self.assertTrue("请求url:http://error哈哈, 返回:(1, 2, '112')" in log_msg4) self.assertTrue(' [test_log_util.test_findCaller:%d] ' % first_line in log_msg4)
def test_log(self): log_util.info('log函数测试') log_util.log(log_util.INFO, '这是 info 级别日志') log_msg = file_util.get_last_lines(logfile) self.assertTrue(' INFO: ' in log_msg) self.assertTrue('这是 info 级别日志' in log_msg) log_util.log(log_util.DEBUG, '这是 debug 级别日志 %s', '哈哈') log_msg = file_util.get_last_lines(logfile) self.assertTrue(' DEBUG: ' in log_msg) self.assertTrue('这是 debug 级别日志 哈哈' in log_msg) log_util.log(log_util.WARNING, '这是 WARNING 级别日志 %s %s %s', 1, 2, 3) log_msg = file_util.get_last_lines(logfile) self.assertTrue(' WARNING: ' in log_msg) self.assertTrue('这是 WARNING 级别日志 1 2 3' in log_msg) log_util.log(log_util.NOTSET, '这日志不会输出') log_msg = file_util.get_last_lines(logfile) self.assertTrue(' WARNING: ' in log_msg) self.assertTrue('这是 WARNING 级别日志 1 2 3' in log_msg) log_util.debug('请求url:%s', u'http://哈哈') log_msg1 = file_util.get_last_lines(logfile) self.assertTrue(' DEBUG: ' in log_msg1) self.assertTrue('请求url:http://哈哈' in log_msg1) logging.info(u'原生logging测试, 请求url:%s' % u'http://哈哈') log_msg1 = file_util.get_last_lines(logfile) self.assertTrue(' INFO: ' in log_msg1) self.assertTrue('原生logging测试, 请求url:http://哈哈' in log_msg1)
def test_to_read(self): log_util.info('to_read 参数测试') # 没有设置 to_read 参数时,不能擅自改变传入内容 log_util.debug("{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}") log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}" in log_msg2) log_util.debug( "{'\xe8\xaf\xb7\xe6\xb1\x82url:': 'http://\xe5\x93\x8822\xe5\x93\x88'}" ) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{'\xe8\xaf\xb7\xe6\xb1\x82url:': 'http://\xe5\x93\x8822\xe5\x93\x88'}" in log_msg2) self.assertTrue("{'请求url:': 'http://哈22哈'}" in log_msg2) # 其实这样写,会内部自动转换 log_util.debug( "{'\\xe8\\xaf\\xb7\\xe6\\xb1\\x82url:': 'http://\\xe5\\x93\\x8822\\xe5\\x93\\x88'}" ) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{'\\xe8\\xaf\\xb7\\xe6\\xb1\\x82url:': 'http://\\xe5\\x93\\x8822\\xe5\\x93\\x88'}" in log_msg2) # 设置 to_read 参数时,需要改变传入内容 log_util.debug("{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}", extra={'to_read': True}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'请求url:': u'http://哈22哈'}" in log_msg2) # 原生 logging 也同样需要支持 to_read logging.debug("{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}", extra={'to_read': True}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'请求url:': u'http://哈22哈'}" in log_msg2) log_util.debug( "{'\xe8\xaf\xb7\xe6\xb1\x82url:': 'http://\xe5\x93\x8822\xe5\x93\x88'}", extra={'to_read': True}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{'\xe8\xaf\xb7\xe6\xb1\x82url:': 'http://\xe5\x93\x8822\xe5\x93\x88'}" in log_msg2) self.assertTrue("{'请求url:': 'http://哈22哈'}" in log_msg2) # 其实这样写,会内部自动转换
def test_no_str(self): log_util.info('非字符串测试') log_util.debug({u'请求url:': u'http://哈22哈'}, extra={'to_read': True}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'请求url:': u'http://哈22哈'}" in log_msg2) log_util.debug({u'请求url:': u'http://哈22哈'}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}" in log_msg2) logging.debug({'请求url:': 'http://哈22哈'}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue( "{u'\u8bf7\u6c42url:': u'http://\u54c822\u54c8'}" in log_msg2) logging.debug({'请求url:': 'http://哈22哈'}, extra={'to_read': True}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'请求url:': u'http://哈22哈'}" in log_msg2) log_util.debug({u'请求url:': u'http://哈22哈'}, extra={ 'to_read': True, 'log_max': 13 }) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'请求url:': u..." in log_msg2) logging.debug({u'请求url:': u'http://哈22哈'}, extra={'log_max': 13}) log_msg2 = file_util.get_last_lines(logfile) self.assertTrue("{u'\u8bf7\u6c..." in log_msg2)
def test_base(self): log_util.info('基础测试') log_util.debug(u'请求url:%s', u'http://哈22哈') log_msg2 = file_util.get_last_lines(logfile) self.assertTrue(' DEBUG: ' in log_msg2) self.assertTrue('请求url:http://哈22哈' in log_msg2) log_util.info('请求url:%s, 返回:%s', u'http://哈哈', '112') log_msg3 = file_util.get_last_lines(logfile) self.assertTrue(' INFO: ' in log_msg3) self.assertTrue('请求url:http://哈哈, 返回:112' in log_msg3) log_util.error(u'请求url:%(url)s, 返回:%(res)s', { 'url': u'http://error哈哈', 'res': ( 1, 2, '112', ) }) log_msg4 = file_util.get_last_lines(logfile) self.assertTrue(' ERROR: ' in log_msg4) self.assertTrue("请求url:http://error哈哈, 返回:(1, 2, '112')" in log_msg4) # exception 会多打印一行 None 日志出来,不知道什么原因 log_util.exception(u'请求url:%(url)s, 返回:%(res)s', { 'url': u'http://11哈哈', 'res': ( 1, 2, '112', ) }) log_msg5 = file_util.get_last_lines(logfile, 2)[0] self.assertTrue(' ERROR: ' in log_msg5) # exception 是 ERROR 级别的日志 self.assertTrue("请求url:http://11哈哈, 返回:(1, 2, '112')" in log_msg5) log_util.warn(u'请求url:%(url)s, 返回:%(res)s', { 'url': u'http://xx哈哈', 'res': ( 1, 2, '112', ) }) log_msg6 = file_util.get_last_lines(logfile) self.assertTrue(' WARNING: ' in log_msg6) self.assertTrue("请求url:http://xx哈哈, 返回:(1, 2, '112')" in log_msg6) log_util.warning(u'请求url:%(url)s, 返回:%(res)s', { 'url': u'http://warning哈哈', 'res': ( 1, 2, '112', ) }) log_msg7 = file_util.get_last_lines(logfile) self.assertTrue(' WARNING: ' in log_msg7) self.assertTrue("请求url:http://warning哈哈, 返回:(1, 2, '112')" in log_msg7) log_util.critical('请求url:%s cc') log_msg8 = file_util.get_last_lines(logfile) self.assertTrue(' CRITICAL: ' in log_msg8) self.assertTrue("请求url:%s cc" in log_msg8) # %s 没有可替换的内容,保持原样
def test_length(self): log_util.info('长度测试') log_util.info('12345678901234567890') log_msg = file_util.get_last_lines(logfile) self.assertTrue('12345678901234567890' in log_msg) # 日志截取 log_util.init(log_file=None, log_max=10, level='info', append=True) log_util.info('12345678901234567890') log_msg = file_util.get_last_lines(logfile) self.assertTrue('1234567890...' in log_msg) # 截取到 init 设置的 10 位,后面拼接上“...” log_util.debug('12345678901234567890', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('12345678901...' in log_msg) log_util.info('12345678901234567890', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('12345678901...' in log_msg) # 截取到 11 位,而不是 init 设置的 10 位 # 中文计算 log_util.info(u'一二三四五六七八九十零一二三四五六七八九十零', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('一二三四五六七八九十零...' in log_msg) log_util.info('一二三四五六七八九十零一二三四五六七八九十零', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue(' INFO: ' in log_msg) self.assertTrue('一二三四五六七八九十零...' in log_msg) # 无限制 log_util.error('12345678901234567890', extra={'log_max': 0}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('12345678901234567890' in log_msg) log_util.info('12345678901234567890', extra={'log_max': None}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('12345678901234567890' in log_msg) # 参数截取 log_util.info('%s1234456789', u'abcdefghijklmnopq', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('abcde...123...' in log_msg) log_util.info('%s%s1234456789', u'abcdefghijklmnopq', 99, extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('abcde...991...' in log_msg) # 中文参数截取 log_util.info('%s一二三四五六七八九', u'甲乙丙丁哈哈哈', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('甲乙丙丁哈...一二三...' in log_msg) log_util.info('%s%s一二三四五六七八九', u'甲乙丙丁哈哈哈', 'xx', extra={'log_max': 11}) log_msg = file_util.get_last_lines(logfile) self.assertTrue('甲乙丙丁哈...xx一...' in log_msg) # 还原日志设置,避免影响下面的测试 log_util.init(log_file=None, log_max=None, level='DEBUG', append=True)