- 论坛徽章:
- 0
|
一个简单的测试,两个线程,在线程中打印日志,日志打印到文件中,发现多线程无法打印日志。
thread1.py代码如下:- import logger.log
- import threading
- import t
- log = logger.log.Logger.getLogger(__name__)
- def thread1():
- t.test('1')
- def thread2():
- t.test('2')
- if __name__ == '__main__':
- log.debug('start main')
- t1 = threading.Timer(10.0, thread1)
- t1.start()
- t2 = threading.Timer(10.0, thread2)
- t2.start()
- t1.join()
- t2.join()
复制代码 t.py代码如下:- import logging
- import logging.config
- logging.config.fileConfig('../conf/log.conf')
- log = logging.getLogger(__name__)
- def test(name):
- log.debug( 'thread' + name)
复制代码 日志配置文件如下:- # logger configure file
- [loggers]
- keys=root,example
- [handlers]
- keys=consoleHandler,rotateFileHandler
- [formatters]
- keys=simpleFormatter
- [formatter_simpleFormatter]
- format=[%(asctime)s][%(levelname)s][%(name)s][%(filename)s:%(lineno)s]:%(message)s
- [logger_root]
- level=DEBUG
- handlers=consoleHandler,rotateFileHandler
- [logger_example]
- level=DEBUG
- handlers=consoleHandler,rotateFileHandler
- qualname=example
- propagate=0
- [handler_consoleHandler]
- class=StreamHandler
- level=DEBUG
- formatter=simpleFormatter
- args=(sys.stdout,)
- [handler_rotateFileHandler]
- class=handlers.RotatingFileHandler
- level=DEBUG
- formatter=simpleFormatter
- args=('hcagent.log', 'a', 200000, 10)
复制代码 结果打印的日志如下:- [2014-08-29 16:48:16,132][DEBUG][__main__][thread1.py:17]:start main
- [2014-08-29 17:14:59,849][DEBUG][__main__][thread1.py:17]:start main
- [2014-08-29 17:15:59,180][DEBUG][__main__][thread1.py:17]:start main
- [2014-08-29 17:16:40,759][DEBUG][__main__][thread1.py:17]:start main
- [2014-08-29 17:20:26,417][DEBUG][__main__][thread1.py:17]:start main
复制代码 问题:按理说在t.py里边打印的日志,应该能够打到hcagent.log里边?可是为什么没有呢?多线程需要做什么特殊处理?
恳请各位大神赐招 |
|