Last active 1734009670

logger, argparse, verbose tous ce qu'il faut pour démarrer un programme concret, modèle, template, base, python

nithir's Avatar nithir revised this gist 1734009670. Go to revision

1 file changed, 1 insertion, 1 deletion

template_base.py

@@ -1,4 +1,4 @@
1 - #!/usr/bin/python3
1 + #!/usr/bin/env python3
2 2 # -*- coding: utf-8 -*-
3 3
4 4 def app():

nithir's Avatar nithir revised this gist 1729246130. Go to revision

1 file changed, 96 insertions, 66 deletions

template_base.py

@@ -1,73 +1,103 @@
1 1 #!/usr/bin/python3
2 2 # -*- coding: utf-8 -*-
3 3
4 - import logging
5 - from logging.handlers import RotatingFileHandler
6 - import argparse
7 -
8 - # construction du logger
9 - LOGGER = logging.getLogger()
10 - LOGGER.setLevel(logging.ERROR)
11 - #LOGGER.setLevel(logging.DEBUG)
12 - formatter = logging.Formatter('%(asctime)s :: %(module)s :: %(levelname)s :: %(message)s')
13 -
14 - # écriture d'un fichier de log
15 - file_handler = RotatingFileHandler(__file__ + '.log', 'a', 1000000, 1)
16 - file_handler.setFormatter(formatter)
17 - LOGGER.addHandler(file_handler)
18 -
19 - # écriture de log sur la sortie standard
20 - stream_handler = logging.StreamHandler()
21 - stream_handler.setFormatter(formatter)
22 - LOGGER.addHandler(stream_handler)
23 -
24 - # gestion des arguments avec argparse, ici on reprend un version modifié mise en place pour agent_dpluzz
25 - # https://docs.python.org/fr/3.6/howto/argparse.html
26 -
27 - PARSER = argparse.ArgumentParser(
28 - description="présentation générale \
29 - de l'outil.")
30 -
31 - # FLAG
32 - PARSER.add_argument("-d",
33 - "--download",
34 - action="store_true",
35 - help="description de la fonction.")
36 -
37 - # Passage de parametre
38 - PARSER.add_argument("-lpf",
39 - "--pattern_load",
40 - type=str,
41 - metavar=('FICHIER'),
42 - help="Charge un fichier de motif (les lignes vide et commençant pas un # sont filtré).")
43 -
44 - # Compteur
45 - PARSER.add_argument("-v",
46 - "--verbosity",
47 - action='count',
48 - help="défini le niveau de verbosité à afficher.")
49 -
50 - # Parsing des arguments
51 - ARGS = PARSER.parse_args()
52 -
53 - # controle du compteur
54 - if ARGS.verbosity == 5:
55 - LOGGER.setLevel(logging.DEBUG)
56 - if ARGS.verbosity == 4:
57 - LOGGER.setLevel(logging.INFO)
58 - if ARGS.verbosity == 3:
59 - LOGGER.setLevel(logging.WARNING)
60 - if ARGS.verbosity == 2:
4 + def app():
5 + import logging
6 + from logging.handlers import RotatingFileHandler
7 + import argparse
8 +
9 + # construction du logger
10 + LOGGER = logging.getLogger()
61 11 LOGGER.setLevel(logging.ERROR)
62 - if ARGS.verbosity == 1:
63 - LOGGER.setLevel(logging.CRITICAL)
12 + #LOGGER.setLevel(logging.DEBUG)
13 + formatter = logging.Formatter('%(asctime)s :: %(module)s :: %(levelname)s :: %(message)s')
64 14
65 - # controle du FLAG
66 - if ARGS.download:
67 - pritnt("fonction download activé")
68 - exit(0)
15 + # écriture d'un fichier de log
16 + file_handler = RotatingFileHandler(__file__ + '.log', 'a', 1000000, 1)
17 + file_handler.setFormatter(formatter)
18 + LOGGER.addHandler(file_handler)
19 +
20 + # écriture de log sur la sortie standard
21 + stream_handler = logging.StreamHandler()
22 + stream_handler.setFormatter(formatter)
23 + LOGGER.addHandler(stream_handler)
24 +
25 + # gestion des arguments avec argparse, ici on reprend un version modifié mise en place pour agent_dpluzz
26 + # https://docs.python.org/fr/3.6/howto/argparse.html
27 +
28 + PARSER = argparse.ArgumentParser(
29 + description="présentation générale \
30 + de l'outil.")
31 +
32 + # FLAG
33 + PARSER.add_argument("-d",
34 + "--download",
35 + action="store_true",
36 + help="description de la fonction.")
37 +
38 + # Passage de parametre
39 + PARSER.add_argument("-lpf",
40 + "--pattern_load",
41 + type=str,
42 + metavar=('FICHIER'),
43 + help="Charge un fichier de motif (les lignes vide et commençant pas un # sont filtré).")
44 +
45 + # Compteur
46 + PARSER.add_argument("-v",
47 + "--verbosity",
48 + action='count',
49 + default=2,
50 + help="défini le niveau de verbosité à afficher.")
51 +
52 + # Parsing des arguments
53 + ARGS = PARSER.parse_args()
54 +
55 + # controle du compteur
56 + if ARGS.verbosity >= 5:
57 + LOGGER.setLevel(logging.DEBUG)
58 + LOGGER.warning("Niveau de la log : DEBUG")
59 + if ARGS.verbosity == 4:
60 + LOGGER.setLevel(logging.INFO)
61 + LOGGER.warning("Niveau de la log : INFO")
62 + if ARGS.verbosity == 3:
63 + LOGGER.setLevel(logging.WARNING)
64 + LOGGER.warning("Niveau de la log : WARNING")
65 + if ARGS.verbosity == 2:
66 + LOGGER.setLevel(logging.ERROR)
67 +
68 + # controle du FLAG
69 + if ARGS.download:
70 + LOGGER.info("fonction download activé")
71 +
72 + # controle du passage de parametre
73 + if ARGS.pattern_load:
74 + LOGGER.info("motif : %s"%ARGS.pattern_load)
75 +
76 +
77 + #
78 + # Debut du programme
79 + #
80 +
81 + LOGGER.warning("Début du programme")
82 +
83 + pass
84 +
85 + LOGGER.warning("Fin du programme")
86 +
87 + #
88 + # Fin du programme
89 + #
69 90
70 - # controle du passage de parametre
71 - if ARGS.pattern_load:
72 - print("motif : %s"%ARGS.pattern_load)
73 91 exit(0)
92 +
93 +
94 +
95 + if __name__ == '__main__':
96 +
97 + try:
98 + app()
99 + except Exception as error:
100 + LOGGER.error(f"Erreur inatendu : {error}")
101 + sys.exit(1)
102 + finally:
103 + pass

nithir's Avatar nithir revised this gist 1728399165. Go to revision

1 file changed, 1 insertion, 1 deletion

template_base.py

@@ -7,7 +7,7 @@ import argparse
7 7
8 8 # construction du logger
9 9 LOGGER = logging.getLogger()
10 - LOGGER.setLevel(logging.WARNING)
10 + LOGGER.setLevel(logging.ERROR)
11 11 #LOGGER.setLevel(logging.DEBUG)
12 12 formatter = logging.Formatter('%(asctime)s :: %(module)s :: %(levelname)s :: %(message)s')
13 13

nithir's Avatar nithir revised this gist 1728398970. Go to revision

1 file changed, 1 insertion, 1 deletion

template_base.py

@@ -12,7 +12,7 @@ LOGGER.setLevel(logging.WARNING)
12 12 formatter = logging.Formatter('%(asctime)s :: %(module)s :: %(levelname)s :: %(message)s')
13 13
14 14 # écriture d'un fichier de log
15 - file_handler = RotatingFileHandler('activity.log', 'a', 1000000, 1)
15 + file_handler = RotatingFileHandler(__file__ + '.log', 'a', 1000000, 1)
16 16 file_handler.setFormatter(formatter)
17 17 LOGGER.addHandler(file_handler)
18 18

nithir's Avatar nithir revised this gist 1728398694. Go to revision

No changes

nithir's Avatar nithir revised this gist 1728398688. Go to revision

1 file changed, 73 insertions

template_base.py(file created)

@@ -0,0 +1,73 @@
1 + #!/usr/bin/python3
2 + # -*- coding: utf-8 -*-
3 +
4 + import logging
5 + from logging.handlers import RotatingFileHandler
6 + import argparse
7 +
8 + # construction du logger
9 + LOGGER = logging.getLogger()
10 + LOGGER.setLevel(logging.WARNING)
11 + #LOGGER.setLevel(logging.DEBUG)
12 + formatter = logging.Formatter('%(asctime)s :: %(module)s :: %(levelname)s :: %(message)s')
13 +
14 + # écriture d'un fichier de log
15 + file_handler = RotatingFileHandler('activity.log', 'a', 1000000, 1)
16 + file_handler.setFormatter(formatter)
17 + LOGGER.addHandler(file_handler)
18 +
19 + # écriture de log sur la sortie standard
20 + stream_handler = logging.StreamHandler()
21 + stream_handler.setFormatter(formatter)
22 + LOGGER.addHandler(stream_handler)
23 +
24 + # gestion des arguments avec argparse, ici on reprend un version modifié mise en place pour agent_dpluzz
25 + # https://docs.python.org/fr/3.6/howto/argparse.html
26 +
27 + PARSER = argparse.ArgumentParser(
28 + description="présentation générale \
29 + de l'outil.")
30 +
31 + # FLAG
32 + PARSER.add_argument("-d",
33 + "--download",
34 + action="store_true",
35 + help="description de la fonction.")
36 +
37 + # Passage de parametre
38 + PARSER.add_argument("-lpf",
39 + "--pattern_load",
40 + type=str,
41 + metavar=('FICHIER'),
42 + help="Charge un fichier de motif (les lignes vide et commençant pas un # sont filtré).")
43 +
44 + # Compteur
45 + PARSER.add_argument("-v",
46 + "--verbosity",
47 + action='count',
48 + help="défini le niveau de verbosité à afficher.")
49 +
50 + # Parsing des arguments
51 + ARGS = PARSER.parse_args()
52 +
53 + # controle du compteur
54 + if ARGS.verbosity == 5:
55 + LOGGER.setLevel(logging.DEBUG)
56 + if ARGS.verbosity == 4:
57 + LOGGER.setLevel(logging.INFO)
58 + if ARGS.verbosity == 3:
59 + LOGGER.setLevel(logging.WARNING)
60 + if ARGS.verbosity == 2:
61 + LOGGER.setLevel(logging.ERROR)
62 + if ARGS.verbosity == 1:
63 + LOGGER.setLevel(logging.CRITICAL)
64 +
65 + # controle du FLAG
66 + if ARGS.download:
67 + pritnt("fonction download activé")
68 + exit(0)
69 +
70 + # controle du passage de parametre
71 + if ARGS.pattern_load:
72 + print("motif : %s"%ARGS.pattern_load)
73 + exit(0)
Newer Older