Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)  # 其实这样写,会内部自动转换
Example #4
0
    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)
Example #5
0
    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 没有可替换的内容,保持原样
Example #6
0
    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)