使用`basicConfig`方法
```python
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s[%(levelname)s]%(message)s',
handlers=[logging.FileHandler('app.log'),
logging.StreamHandler()])
logger = logging.getLogger(__name__)
def divide(a, b):
try:
result = a / b
except ZeroDivisionError:
logger.error('Division by zero')
return None
else:
logger.debug('Division successful')
return result
使用`dictConfig`方法
```python
import logging
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG',
'formatter': 'default',
},
'file': {
'class': 'logging.FileHandler',
'level': 'DEBUG',
'formatter': 'default',
'filename': 'app.log',
},
},
'loggers': {
'': { root logger
'handlers': ['console', 'file'],
'level': 'DEBUG',
'propagate': False,
},
},
}
logging.config(LOGGING)
logger = logging.getLogger(__name__)
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
使用配置文件
```ini
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=defaultFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=logging.StreamHandler
level=DEBUG
formatter=defaultFormatter
[handler_fileHandler]
class=logging.FileHandler
level=DEBUG
formatter=defaultFormatter
filename=app.log
然后使用`fileConfig`方法加载配置:
```python
import logging
logging.config('logging.conf')
logger = logging.getLogger(__name__)
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
以上是Python日志框架的基本设置方法。您可以根据需要调整日志级别、格式、输出目的地(控制台或文件)等。