Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4505

Re: [Python-de] Loggen in unterschiedliche Dateien

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>

Show all headers | View raw


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 | NextPrevious in thread | Find similar


Thread

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