Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4505
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Loggen in unterschiedliche Dateien |
| Date | 2016-08-05 09:53 +0200 |
| Organization | None |
| Message-ID | <mailman.188.1470383708.6033.python-de@python.org> (permalink) |
| References | (1 earlier) <bbe0a23e-cfd5-4af8-89a4-5136e9e801d4@googlegroups.com> <nnvjnc$brm$1@blaine.gmane.org> <mailman.162.1470322120.6033.python-de@python.org> <faf38019-d020-4db2-bd5d-89b2c04e371b@googlegroups.com> <no1gm6$jbo$1@blaine.gmane.org> |
rkoch83--- via python-de wrote:
> Am Donnerstag, 4. August 2016 16:48:42 UTC+2 schrieb Peter Otten:
>>
>> Du wirst vom Blitz getroffen und dann von einem Bus überfahren ;)
>
> Eieiei, dann sollte ich mich von Busfahrern fernhalten, die Python können,
> hm?
>
>> Im Ernst, ich würde wahrscheinlich nur die Zieldatei des FileHandlers
>> variieren und alles andere in Ruhe lassen. Hier mein Versuch, die
>> wesentlichen Teile vom RotatingFileHandler zu klauen:
>>
>> import logging
>> import os
>>
>>
>> class RetargetableFileHandler(logging.FileHandler):
>> def retarget(self, filename):
>> if self.stream:
>> self.stream.close()
>> self.stream = None
>> self.baseFilename = os.path.abspath(filename)
>> if not self.delay:
>> self.stream = self._open()
>
> Ok, das scheint mir etwas eleganter zu sein, aber wirklich "einfach" ist
> es auch nicht. (Ich weiß, das ist Ansichtssache. Daher die
> Anführungszeichen. :-)) Was ich nciht ganz verstehe ist, wieso ein
> existierender Logger (incl. seines FileHandlers) benutzt wird, obwohl ich
> explizit einen neuen anlege. Mit einem eigenen Namen wohlgemerkt! (Ich
> habe durchaus gelesen, dass getLogger(), mit einem existierenden Namen
> aufgerufen, auch den bereits existierenden Logger ausgibt.)
Die Logger bilden eine Hierarchie mit dem Root-Logger an der Spitze, der
also in der Regel alle Nachrichten sieht und dessen Handler für die
Verarbeitung aller Nachrichten zuständig sind. Man kann bei Bedarf einen
Logger-"Zweig" abtrennen:
>>> import logging
>>> logging.basicConfig(level=logging.INFO)
>>> foo = logging.getLogger("foo")
>>> foo.info("here")
INFO:foo:here
>>> foo.propagate = False
>>> foo.info("there")
No handlers could be found for logger "foo"
https://docs.python.org/dev/library/logging.html#logging.Logger.propagate
Back to de.comp.lang.python | Previous | Next — Previous in thread | Find similar
Loggen in unterschiedliche Dateien rkoch83@googlemail.com - 2016-08-04 01:35 -0700
Re: Loggen in unterschiedliche Dateien rkoch83@googlemail.com - 2016-08-04 03:29 -0700
Re: [Python-de] Loggen in unterschiedliche Dateien Peter Otten <__peter__@web.de> - 2016-08-04 16:33 +0200
Re: [Python-de] Loggen in unterschiedliche Dateien rkoch83@googlemail.com - 2016-08-04 23:59 -0700
Re: [Python-de] Loggen in unterschiedliche Dateien Peter Otten <__peter__@web.de> - 2016-08-05 09:53 +0200
csiph-web