我试图将logger用于新模块。该模块将从顶级脚本调用,并且不使用记录器机制,而是使用原始打印语句。
当我从我的模块记录消息时,日志文件中缺少我的语句的某些字符。我的日志文件中缺少的字符数等于使用raw' print'打印的字符数。语句。
有人可以帮我解决这个问题 - ?
FYI ::
代码:
记录器配置:
def initLogger(filename='debug.log', log_console_level=logging.CRITICAL):
"""
Initialise logging routines. From debug level all log messages goes to file.
"""
global logger
try:
logger = logging.getLogger("")
logger.setLevel(logging.DEBUG)
handlers = []
fh = logging.FileHandler(filename, "w")
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(log_console_level)
handlers.append(fh)
handlers.append(ch)
format = logging.Formatter('[%(levelname)-8s] :: %(message)s')
for i in handlers:
i.setFormatter(format)
logger.addHandler(i)
logger.propagate = False
except IOError:
logger = logging.getLogger("")
logging.basicConfig(format = '[%(levelname)-8s] :: %(message)s',
level = logging.WARN)
logger.warn("Couldn't open %s file. Will log only to the screen" % filename)
logger.info("Started ")
return logger
顶级脚本中的声明:
print "Version : 2.7.2"
我的模块中的记录器语句:
logger.info("Check-1 Pass\n")
日志文件中的输出:
Version : 2.7.2
heck-1 Pass
预期产出:
Version : 2.7.2
[INFO ] :: Check-1 Pass