logz-logger facile à utiliser

logz-logger facile à utiliser

utilisation facile pour le journal avec des informations supplémentaires

CARACTÉRISTIQUES

  • très simple d'utilisation
  • modification du nom du fichier journal par rapport à la date
  • DayRottingLogger
  • champs supplémentaires sûrs
  • journal multi vars et pas seulement str
  • journal multiligne et retrait pour json
  • déboguer comme niveau par défaut

Installer

$ pip install logz

Utilisation

Utilisation simple

from logz import log
log.debug('debug msg')
log.info('info msg')
log.warning('warning msg')
log.error('error msg')
log.critical('critical mst')
try:
    assert 0
except AttributeError as ex:
    log.exception(ex)

production:

2019-12-12 22:39:43,584 DEBUG debug msg
2019-12-12 22:39:43,584 INFO info msg
2019-12-12 22:39:43,584 WARNING warning msg
2019-12-12 22:39:43,585 ERROR error msg
2019-12-12 22:39:43,585 CRITICAL critical mst
Traceback (most recent call last):
  File "/Users/apple/Documents/Projects/logz/logz/__init__.py", line 199, in <module>
    assert 0
AssertionError

journal multi vars une fois

a = 'hello'
b = 1
c = [2]
d = {'name': 'kevin'}
log.info(a,b,c,d)

production:

2019-12-12 22:40:20,221 INFO hello 1 [2] {'name': 'kevin'}

Remarque: changez le formulaire args prenant en charge le format% s en supportant plusieurs variables
si vous souhaitez utiliser quelque chose comme:

import logging
logging.info('name=%s,age=%d', 'kevin',18)

vous ne devez pas utiliser comme ci-dessous:

form logz import log
log.info('name=%s,age=%d' % ('kevin',18))

production:

2019-12-12 22:41:58,024 INFO name=kevin,age=18

se connecter au fichier

log.file='logs/project.log'

Remarque: le répertoire des journaux doit exister

Par défaut, c'est un fichier en décomposition et maxBytes = 10240 et backUps = 5

se connecter à un fichier dont le nom change avec la date

log.file='logs/%Y-%m-%d.log'

Et c'est un fichier pourri d'un jour

changer le niveau du journal

log.level = 'info'
log.level = 20
log.debug('not show')
log.info('show info')

production:

2019-12-12 22:43:24,479 INFO show info

la chaîne de niveau n'est pas sensible à la casse

changer le format du journal

log.format = '%(asctime)s %(levelname)s %(name)s %(message)s'

avec des champs supplémentaires

log.format = '%(asctime)s %(levelname)s %(user)s %(message)s'
log.info('hello with no user')
log.info('hello with kevin', extra={'user': 'kevin'})

production:

2019-12-12 22:45:18,604 INFO None hello with no user
2019-12-12 22:45:18,604 INFO kevin hello with kevin

multiligne et retrait pour dict

log.info({'foo': 'bar'}, indent=2)

production:

2019-12-09 19:30:16,419 DEBUG log None ->
{
  "foo": "bar"
}

tout

  • fichier journal pour configurer maxBytes ou autre
  • se connecter en html
  • connectez-vous à l'email
  • se connecter à db
  • log diff
  • assertion de journal
  • impression du journal
  • se connecter au serveur à l'aide de websocket
  • plus de décorateurs tels que @explain @exception @timeit @email
  • soutenir la verbosité

Bugs

  • logit ne prend pas en charge la méthode d'instance

Je suppose que tu aimes

Origine www.cnblogs.com/superhin/p/12737843.html
conseillé
Classement