micropython-lib/python-stdlib/logging/examples/example_logging_2.py

49 wiersze
1.3 KiB
Python

import logging
# Create logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Create console handler and set level to debug
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
# Create file handler and set level to error
file_handler = logging.FileHandler("error.log", mode="w")
file_handler.setLevel(logging.ERROR)
# Create a formatter
formatter = logging.Formatter("%(asctime)s.%(msecs)03d - %(name)s - %(levelname)s - %(message)s")
# Add formatter to the handlers
stream_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Add handlers to logger
logger.addHandler(stream_handler)
logger.addHandler(file_handler)
# Log some messages
logger.debug("debug message")
logger.info("info message")
logger.warning("warn message")
logger.error("error message")
logger.critical("critical message")
logger.info("message %s %d", "arg", 5)
logger.info("message %(foo)s %(bar)s", {"foo": 1, "bar": 20})
try:
1 / 0
except:
logger.error("Some trouble (%s)", "expected")
# Custom handler example
class MyHandler(logging.Handler):
def emit(self, record):
print("levelname=%(levelname)s name=%(name)s message=%(message)s" % record.__dict__)
logging.getLogger().addHandler(MyHandler())
logging.info("Test message7")