Logging is divided into 4 modules: loggers, handlers, filters, and formatters.
Loggers: Provides an interface for application calls
Handlers: Send the log to the specified location
Filters: Filtering Log information
Formatters: Format output log
Logger
Logger.setlevel () Set log level
Logger.addhandler () and Logger.removehandler () Add and remove log processors
Logger.addfilter () and Logger.removefilter () Add and remove filters
Logger.debug (), Logger.info (), logger.warning (), Logger.error (), and logger.critical () create different levels of logs
GetLogger () Gets the root instance of the log
Handler
Setlevel () Set log level
Setformatter () Set output format
AddFilter () and removefilter () Add and remove filters
Formatter
The default form is:%y-%m-%d%h:%m:%s.
The format is:% () s
Log Configuration Management
Hard coded form
Copy Code code as follows:
Import logging
# Create Logger
Logger = Logging.getlogger (' simple_example ')
Logger.setlevel (logging. DEBUG)
# Create console handler and set level to debug
ch = logging. Streamhandler ()
Ch.setlevel (logging. DEBUG)
# Create Formatter
Formatter = logging. Formatter ('% (asctime) s-% (name) s-% (levelname) s-% (message) s ')
# Add Formatter to Ch
Ch.setformatter (Formatter)
# Add CH to Logger
Logger.addhandler (CH)
# ' Application ' code
Logger.debug (' Debug message ')
Logger.info (' info message ')
Logger.warn (' Warn message ')
Logger.error (' Error message ')
Logger.critical (' critical message ')
Output
Copy Code code as follows:
$ python simple_logging_module.py
2005-03-19 15:10:26,618-simple_example-debug-debug Message
2005-03-19 15:10:26,620-simple_example-info-info Message
2005-03-19 15:10:26,695-simple_example-warning-warn Message
2005-03-19 15:10:26,697-simple_example-error-error Message
2005-03-19 15:10:26,773-simple_example-critical-critical Message
managing logs from File configuration
Code:
Copy Code code as follows:
Import logging
Import Logging.config
Logging.config.fileConfig (' logging.conf ')
# Create Logger
Logger = Logging.getlogger (' simpleexample ')
# ' Application ' code
Logger.debug (' Debug message ')
Logger.info (' info message ')
Logger.warn (' Warn message ')
Logger.error (' Error message ')
Logger.critical (' critical message ')
configuration file:
Copy Code code as follows:
[Loggers]
Keys=root,simpleexample
[Handlers]
Keys=consolehandler
[Formatters]
Keys=simpleformatter
[Logger_root]
Level=debug
Handlers=consolehandler
[Logger_simpleexample]
Level=debug
Handlers=consolehandler
Qualname=simpleexample
Propagate=0
[Handler_consolehandler]
Class=streamhandler
Level=debug
Formatter=simpleformatter
Args= (Sys.stdout,)
[Formatter_simpleformatter]
format=% (asctime) s-% (name) s-% (levelname) s-% (message) s
datefmt=
Output:
Copy Code code as follows:
$ python simple_logging_config.py
2005-03-19 15:38:55,977-simpleexample-debug-debug Message
2005-03-19 15:38:55,979-simpleexample-info-info Message
2005-03-19 15:38:56,054-simpleexample-warning-warn Message
2005-03-19 15:38:56,055-simpleexample-error-error Message
2005-03-19 15:38:56,130-simpleexample-critical-critical Message
Log Format
% (Levelno) S: Print log-level values
% (levelname) S: Print log level name
% (pathname) s: Prints the path of the current execution program, which is actually sys.argv[0]
% (filename) S: Print the current executing program name
% (funcName) s: Print the current function of the log
% (Lineno) d: Print the current line number of the log
% (asctime) s: Time to print log
% (thread) d: Print thread ID
% (threadname) s: Print thread name
% (process) d: printing process ID
% (message) s: Print log information
Flow chart