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


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

Re: [Python-de] Loggen in unterschiedliche Dateien

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Peter Otten <__peter__@web.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Loggen in unterschiedliche Dateien
Date Thu, 04 Aug 2016 16:33:15 +0200
Organization None
Lines 67
Message-ID <mailman.162.1470322120.6033.python-de@python.org> (permalink)
References <d55e9378-6ce7-4562-a583-7eaa7406c655@googlegroups.com> <bbe0a23e-cfd5-4af8-89a4-5136e9e801d4@googlegroups.com> <nnvjnc$brm$1@blaine.gmane.org>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
X-Trace news.uni-berlin.de JA9/JyWrV2Th1ZPQgqaBmQ//tl4tCWO4T1uCChniabNg==
Return-Path <gcpgg-python-de@m.gmane.org>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
X-Injected-Via-Gmane http://gmane.org/
User-Agent KNode/4.13.3
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.22
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID <nnvjnc$brm$1@blaine.gmane.org>
X-Mailman-Original-References <d55e9378-6ce7-4562-a583-7eaa7406c655@googlegroups.com> <bbe0a23e-cfd5-4af8-89a4-5136e9e801d4@googlegroups.com>
Xref csiph.com de.comp.lang.python:4503

Show key headers only | View raw


rkoch83--- via python-de wrote:

> Ok, Ingrid habe jetzt hiermit erreicht was ich wollte:
> 
> Version 3
> =========
> logger = logging.getLogger(experiment)
> logger.handlers = []
> logger.addHandler(logging.FileHandler(
>     filename="/home/xnat/xnat_data/logs/{}_{}.log".format(project,
>     experiment)))
> logger.handlers[-1].setFormatter(logging.Formatter('%(asctime)s - %(name)s
> - %(levelname)s: %(message)s')) logger.setLevel(logging.DEBUG)
> 
> logger.info("Project: {}, Experiment: {}".format(project, experiment))
> 
> del logging.Logger.manager.loggerDict[experiment]
> =========
> 
> Es erscheint mir nicht besonders elegant oder "pythonic" so in die
> Eingeweide des Moduls einzugreifen. Geht das schöner? Welche Risiken birgt
> diese Vorgehensweise?

Du wirst vom Blitz getroffen und dann von einem Bus überfahren ;)

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()


def get_filename(project, experiment):
    return "/home/xnat/xnat_data/logs/{}_{}.log".format(project, experiment)


first = True
project = "spam"
for experiment in ["foo", "bar", "baz"]:
    if first:
        # run once
        logger = logging.getLogger()
        handler = RetargetableFileHandler(get_filename(project, experiment))
        handler.setFormatter(
            logging.Formatter(
                '%(asctime)s - %(name)s - %(levelname)s: %(message)s'))
        logger.addHandler(handler)
        logger.setLevel(logging.DEBUG)
        first = False
    else:
        # specify new destination
        handler.retarget(get_filename(project, experiment))
    # log something
    logger.info("Project: {}, Experiment: {}".format(project, experiment))

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next 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