mirror of
https://github.com/python/cpython.git
synced 2025-11-02 11:08:57 +00:00
Merged documentation update from 3.3.
This commit is contained in:
commit
3fdd4f1935
1 changed files with 34 additions and 0 deletions
|
|
@ -1094,6 +1094,40 @@ parentheses go around the format string and the arguments, not just the format
|
||||||
string. That's because the __ notation is just syntax sugar for a constructor
|
string. That's because the __ notation is just syntax sugar for a constructor
|
||||||
call to one of the XXXMessage classes.
|
call to one of the XXXMessage classes.
|
||||||
|
|
||||||
|
If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar effect
|
||||||
|
to the above, as in the following example::
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
class Message(object):
|
||||||
|
def __init__(self, fmt, args):
|
||||||
|
self.fmt = fmt
|
||||||
|
self.args = args
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.fmt.format(*self.args)
|
||||||
|
|
||||||
|
class StyleAdapter(logging.LoggerAdapter):
|
||||||
|
def __init__(self, logger, extra=None):
|
||||||
|
super(StyleAdapter, self).__init__(logger, extra or {})
|
||||||
|
|
||||||
|
def log(self, level, msg, *args, **kwargs):
|
||||||
|
if self.isEnabledFor(level):
|
||||||
|
msg, kwargs = self.process(msg, kwargs)
|
||||||
|
self.logger._log(level, Message(msg, args), (), **kwargs)
|
||||||
|
|
||||||
|
logger = StyleAdapter(logging.getLogger(__name__))
|
||||||
|
|
||||||
|
def main():
|
||||||
|
logger.debug('Hello, {}', 'world!')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
main()
|
||||||
|
|
||||||
|
The above script should log the message ``Hello, world!`` when run with
|
||||||
|
Python 3.2 or later.
|
||||||
|
|
||||||
|
|
||||||
.. currentmodule:: logging
|
.. currentmodule:: logging
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue