示例#1
0
# level: 设置日志级别,默认为logging.WARNING
# stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s",
    datefmt="%a, %d %b %Y %H:%M:%S",
    filename="myapp.log",
    filemode="w",
)

# define a new log level

console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter("%(name)-12s: %(levelname)-8s %(message)s")
console.setFormatter(formatter)
logging.getLogger("").addHandler(console)

logging.debug("This is debug message")
logging.info("This is info message")
logging.warning("This is warning message")


# log file split
Rthandler = RotatingFileHandler("myapp1.log", maxBytes=10 * 1024 * 1024, backupCount=5)
Rthandler.setLevel(logging.INFO)
formatter = logging.Formatter("%(name)-12s: %(levelname)-8s %(message)s")
Rthandler.setForamtter(formatter)
logging.getLogger("").addHandler(Rthandler)