python的logging问题请教

代码:

# /usr/bin/python
#coding:utf-8
__author__ = 'eyu Fanne'

import multiprocessing,time
import logging

logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)

def fun(msg):

    time.sleep(2)
    print 'msg:',msg
    return 'msg:',msg
    #print 'end'

def test():
    pool = multiprocessing.Pool(processes=4)
    for i in xrange(10):
        msg = 'hello %d' %(i)
        pool.apply_async(fun,(msg,))
        #pool.apply(fun,(msg,))

    pool.close()
    pool.join()


if __name__=='__main__':
    logger.info(test())
    logger.info('dddd')

打印的结果:

msg:msg: hello 3
msg: hello 0
 hello 2
msg: hello 1
msg: hello 5
msg:msg:msg:  hello 4hello 7 
hello 6

msg: hello 8
msg: hello 9
2016-01-12 18:44:27,251 - mylogger - INFO - None
2016-01-12 18:44:27,251 - mylogger - INFO - dddd

第一个函数为何打印出来的是None的

阅读 2.7k
1 个回答

因为test()没有返回值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题