X-Received: by 10.36.152.131 with SMTP id n125mr1441077itd.0.1470380389151; Thu, 04 Aug 2016 23:59:49 -0700 (PDT) X-Received: by 10.157.26.82 with SMTP id u18mr1656275otu.11.1470380389097; Thu, 04 Aug 2016 23:59:49 -0700 (PDT) Path: csiph.com!xmission!news.glorb.com!f6no7490443ith.0!news-out.google.com!d68ni17331ith.0!nntp.google.com!f6no7490442ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: de.comp.lang.python Date: Thu, 4 Aug 2016 23:59:48 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=165.225.80.164; posting-account=wM6biAoAAACpU28USYnV6QECDxUBif6M NNTP-Posting-Host: 165.225.80.164 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: [Python-de] Loggen in unterschiedliche Dateien From: rkoch83@googlemail.com Injection-Date: Fri, 05 Aug 2016 06:59:49 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Xref: csiph.com de.comp.lang.python:4504 Am Donnerstag, 4. August 2016 16:48:42 UTC+2 schrieb Peter Otten: >=20 > Du wirst vom Blitz getroffen und dann von einem Bus =C3=BCberfahren ;) Eieiei, dann sollte ich mich von Busfahrern fernhalten, die Python k=C3=B6n= nen, hm? > Im Ernst, ich w=C3=BCrde wahrscheinlich nur die Zieldatei des FileHandler= s=20 > variieren und alles andere in Ruhe lassen. Hier mein Versuch, die=20 > wesentlichen Teile vom RotatingFileHandler zu klauen: >=20 > import logging > import os >=20 >=20 > class RetargetableFileHandler(logging.FileHandler): > def retarget(self, filename): > if self.stream: > self.stream.close() > self.stream =3D None > self.baseFilename =3D os.path.abspath(filename) > if not self.delay: > self.stream =3D self._open() Ok, das scheint mir etwas eleganter zu sein, aber wirklich "einfach" ist es= auch nicht. (Ich wei=C3=9F, das ist Ansichtssache. Daher die Anf=C3=BChrun= gszeichen. :-)) Was ich nciht ganz verstehe ist, wieso ein existierender Logger (incl. sein= es 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 existierende= n Logger ausgibt.) Robin