Δημοσιεύτηκε: 13 Αύγ 2012, 01:43
από pmav99
Ένα template για βασική χρήση logging.
Μορφοποιημένος Κώδικας: Επιλογή όλων
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import logging
import argparse


LOGGING_LEVELS = {
'critical': logging.CRITICAL,
'error': logging.ERROR,
'warning': logging.WARNING,
'info': logging.INFO,
'debug': logging.DEBUG}


def main():
parser = argparse.ArgumentParser(
description="Program Summary",
version="0.0.0")

parser.add_argument(
"-l", help="Logging level", default="error", dest="logging_level",
choices=("debug", "info", "warning", "error", "critical"))

parser.add_argument("-f", help="Logging file name", dest="logging_filename")

options = parser.parse_args()
logging_level = LOGGING_LEVELS[options.logging_level]
logging_filename = options.logging_filename

logging.basicConfig(
level=logging_level,
filename=logging_filename,
datefmt='%Y-%m-%d %H:%M:%S',
format='%(asctime)s %(levelname)s: %(message)s')
#format="%(levelname)s: %(message)s")

# Your program goes here.
logging.debug("This is a debug message.")
logging.error("This is an error message.")
logging.critical("This is a critical message.")


if __name__ == "__main__":
main()

To default log level ειναι το "error". Δίνει output
Κώδικας: Επιλογή όλων
$ python3 logging_template.py
2012-08-13 01:20:12 ERROR: This is an error message.
2012-08-13 01:20:12 CRITICAL: This is a critical message.

Για να το αλλαξουμε σε debug δίνουμε
Κώδικας: Επιλογή όλων
$ python3 logging_template.py -l debug
2012-08-13 01:40:22 DEBUG: This is a debug message.
2012-08-13 01:40:22 ERROR: This is an error message.
2012-08-13 01:40:22 CRITICAL: This is a critical message.

Για να γράψουμε το output σε ένα αρχείο δίνουμε
Κώδικας: Επιλογή όλων
$ python3 logging_template.py -f log.txt
$ cat log.txt
2012-08-13 01:42:25 ERROR: This is an error message.
2012-08-13 01:42:25 CRITICAL: This is a critical message.