[Python] Setup del logging in un progetto

2018-01-19 Per discussione Karim
Salve lista, io sono stato abituato male da Django perche' quando lavoro
nelle mie webapp il logging e' configurato nel settings.py e tutto
funziona, ma ora che sto lavorando in un progetto "puro" python, il logging
non mi funziona. Purtroppo Django mi ha abituato male.

File: logging.ini



*[loggers]**keys=root*

*[formatters]**keys=simpleFormatter*

*[handlers]**keys=simpleFileHandler*

*[logger_root]*
*level=DEBUG**handlers=simpleFileHandler*

*[handler_simpleFileHandler]*
*class=FileHandler*
*level=DEBUG*
*formatter=simpleFormatter**args=('bot.log', 'w')*

*[formatter_simpleFormatter]*
*format=%(asctime)s - %(name)s - %(levelname)s - %(message)s**datefmt=*



​Nel mio main.py che carica il programma importando dal mio package:

*import logging.config*
*logging.config.fileConfig(log_file_path)*


​Nei vari moduli del mio package io faccio il c​lassico


*import logging*
*logger = logging.getLogger(__name__)*


​In alcuni moduli funziona e vedo in "bot.log" lo statement, in altri
invece no.

Devo per caso configurare il logging in ogni modulo? Mi sembra che non
abbia senso.

Come fa django a darmi un logging configurato? E come posso ottenere la
stessa cosa?

Grazie

​


-- 
Karim N. Gorjux
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] self, generatori e liste.

2018-01-19 Per discussione Andrea D'Amore
2018-01-18 16:43 GMT+01:00 Federico Cerchiari :
> Ciao Luca,
> non ho controllato, ma "a naso" direi che un generatore, anche se definito
> in line è un oggetto function, e come tale ha il suo namespace chiuso che
> non può accedere all'esterno.

Mi sembra forzata come spiegazione, per il generatore self è un
oggetto dell'argomento come gli altri, no?

L'esempio che segue funziona, anche su py2 come l'OP usa. Si dovrebbe
vedere il codice che ha dato l'errore inizialmente per capire il
problema.

class Schedule(object):
  weeks = {
  3: 'three',
  9: 'nine',
  1: 'one',
  }

  def original_sorting(self):
for o in (self.weeks[s] for s in sorted(self.weeks)):
  print(o)

Schedule().original_sorting()

produce:

$ ipython test.py
one
three
nine


Ma quell'accesso al valore nel generatore mi sembra un po' intricato, io userei:

  def simpler_sorting(self):
for k, v in sorted(self.weeks.iteritems()):
  print(v)

che si legge più semplicemente.


-- 
Andrea
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python