J'utilise la bibliothèque de journalisation Python standard ( import logging
) et j'installe le plugin Ideolog. Mais il ne prend pas en charge le format de la bibliothèque de journalisation standard (et PyCharm demande de le configurer). J'ai essayé des expressions régulières, mais elles ne correspondent pas. Comment dois-je le configurer?
PS Dans le code, j'utilise la journalisation comme logging.info('Some info')
4 Réponses :
J'ai juste eu le même problème.
J'ai utilisé la configuration suivante:
Mon format de journalisation ressemble à ceci:
pattern="^\s*ERROR?\s*$" action="HIGHLIGHT_LINE" fg="-65536" stripe="true" pattern="^\s*WARNING?\s*$" action="HIGHLIGHT_LINE" fg="-22016" bold="true" pattern="^\s*INFO\s*$" action="HIGHLIGHT_LINE" fg="-12599489" pattern="^\s*DEBUG\s*$" action="HIGHLIGHT_LINE" fg="-14927361" stripe="true" pattern="^\s*CRITICAL\s*$" action="HIGHLIGHT_LINE" fg="-65536" bold="true" italic="true" stripe="true"
Modèle d'analyse de journal:
pattern="^(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(\S*)\s*(\w*)\s*(.*)$" timePattern="yyyy-MM-dd HH:mm:ss,SSS" linePattern="^\d" timeId="0" severityId="2" fullmatch="true"
Log Hightlight Patterns:
"%(asctime)s %(name)-30s %(levelname)-8s %(message)s"
HTH et YMMV ...
C'est pour main.py
message pattern: ^(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(\S*)\s*(\w*)\s*(.*)$ message start pattern: ^\d time format HH:mm:ss,SSS time capture group: 0 severity capt group: 3 cat capt group: 1
et c'est pour mettre en évidence (idealog)
import logging as log logger = r'logger.log' if __name__ == "__main__": log.basicConfig(filename=logger, format='%(asctime)s - %(threadName)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=log.DEBUG)
Je fais ça et tout fonctionne. Bonne chance
si vous ne voulez pas trop vous débattre avec les expressions régulières, vous pouvez en faire une simple
(INFO)
correspondra à "INFO" et vous pouvez faire le reste pour les autres niveaux pour une visualisation rapide.
Sur la base de la réponse de Kirill, je l'ai finalement fait fonctionner dans pycharm aussi. Au cas où cela serait utile, voici ma configuration.
Mon formateur de fichier journal est
Time format is yyyy-MM-dd HH:mm:ss,SSS Time is group 0 Severity group 1 Category group 2
Les lignes typiques de l'un de mes fichiers journaux ressemblent à ceci
^(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})-(\S*)-(.*)$
Mon modèle de message est
2020-11-09 14:26:08,567-INFO-measuring Op/frame for CNN 2020-11-09 14:26:09,045-INFO-Op/frame: 249.64M
Notez la correspondance explicite de toute la chaîne date / heure, puis «-», puis la chaîne de niveau, un autre «-», puis le reste de la ligne est la charge utile. Le \ S correspond au nom du niveau sans espaces. La page boost regexp à https://www.boost.org/doc/libs/1_44_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html est utile et j'ai utilisé sublime pour tester l'expression.
fmtter = logging.Formatter(fmt="%(asctime)s-%(levelname)s-%(message)s")