我的日志配置如下,运行时自动输出到控制台,用nohup挂起,相应的输出也会输出nohup.out
同时my.log也会有正确的日志输出
my.log的日志输出格式是正确的,输出到控制台的日志和ide(pychram)调试时产生的日志一样
logHandler = TimedRotatingFileHandler("logs/my.log", when="midnight")
logFormatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
logHandler.setFormatter(logFormatter)
logger = logging.getLogger('myapp')
logger.addHandler(logHandler)
logger.setLevel(logging.INFO)
具体应该怎么修改?
无需改python代码,修改一下启动脚本更好,可以将输出定义到
/dev/null
。如下:详细解释:
> /dev/null
就是把标准输出流(代号是1)重定向到一个不存在的设备里,也就是直接丢弃。2>&1
就是把标准错误流(代号是2)放到标准输出流(代号是1)里,也就是输出流是标准输出和标准错误混杂在一起。这样无论是标准输出还是标准错误都被丢弃了。最后一个&
是后台启动。