-
Notifications
You must be signed in to change notification settings - Fork 0
/
littleLogging.py
85 lines (69 loc) · 2.19 KB
/
littleLogging.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# -*- coding: utf-8 -*-
"""
Created on Fri Aug 30 19:02:42 2019
@author: solis
Módulo para almacenar mensajes durante la ejecución de un script
Los mensajes se dan de alta con la función append. Los mensajes se graban a
un fichero de texto con la función dump.
module variables
__messages. Lista destrings donde se almacenan los mensajes
__fileNameWihoutExtension. Nombre de fichero de texto donde se grabarán
los mensajes
__FILE_EXTENSION. Extensión del fichero log
__nwrites. Controla el número de veces que se ejecuta dump con éxito
max_rows. Número máximo de elementos en __messages. Si al hacer un append
tiene 100 elementos, el programa hace un dump y borra los mensajes
grabados (control para logs potencialmente de muchos elementos)
"""
from datetime import datetime
__messages = []
__fileNameWihoutExtension = 'app'
__FILE_EXTENSION = '.log'
__nwrites = 0
max_rows = 100
def get_as_list() -> list:
"""
devuelve el valor de __messages
"""
return __messages
def get_as_str() -> str:
"""
devuelve el valor de __messages as str
"""
return '\n'.join(__messages)
def file_name_get():
"""
devuelve el nombre del fichero log
"""
return __fileNameWihoutExtension + __FILE_EXTENSION
def append(message: str, toScreen: bool=True):
"""
append message in __messages
"""
global __messages
now = datetime.now()
if not __messages:
date = now.strftime('%Y-%m-%d')
__messages.append(f'{date}')
if len(__messages) == max_rows:
dump()
__messages = []
time = now.strftime('%HH:%MM:%SS')
__messages.append(f'{time}: {message}')
if toScreen:
print(message)
def dump(fileName: str=__fileNameWihoutExtension, mode: str='w'):
"""
graba __messages en el fichero fileName
"""
global __nwrites
if fileName is not None:
__fileName = fileName
if __nwrites == 0:
mode = 'w'
else:
mode = 'a'
with open(f'{__fileName}{__FILE_EXTENSION}', mode) as f:
for message in __messages:
f.write(f'{message}\n')
__nwrites += 1