15
15
logger = logging .getLogger ("halmos" )
16
16
17
17
18
- def debug (text : str ) -> None :
19
- logger .debug (text )
20
-
21
-
22
- def info (text : str ) -> None :
23
- logger .info (text )
24
-
25
-
26
- def warn (text : str ) -> None :
27
- logger .warning (text )
28
-
29
-
30
- def error (text : str ) -> None :
31
- logger .error (text )
32
-
33
-
34
18
#
35
19
# Logging with filtering out duplicate log messages
36
20
#
@@ -51,8 +35,28 @@ def filter(self, record):
51
35
logger_unique .addFilter (UniqueLoggingFilter ())
52
36
53
37
38
+ def logger_for (allow_duplicate = True ) -> logging .Logger :
39
+ return logger if allow_duplicate else logger_unique
40
+
41
+
42
+ def debug (text : str , allow_duplicate = True ) -> None :
43
+ logger_for (allow_duplicate ).debug (text )
44
+
45
+
46
+ def info (text : str , allow_duplicate = True ) -> None :
47
+ logger_for (allow_duplicate ).info (text )
48
+
49
+
50
+ def warn (text : str , allow_duplicate = True ) -> None :
51
+ logger_for (allow_duplicate ).warning (text )
52
+
53
+
54
+ def error (text : str , allow_duplicate = True ) -> None :
55
+ logger_for (allow_duplicate ).error (text )
56
+
57
+
54
58
def debug_once (text : str ) -> None :
55
- logger_unique . debug (text )
59
+ debug (text , allow_duplicate = False )
56
60
57
61
58
62
#
@@ -80,5 +84,5 @@ def url(self) -> str:
80
84
LOOP_BOUND = ErrorCode ("loop-bound" )
81
85
82
86
83
- def warn_code (error_code : ErrorCode , msg : str ):
84
- logger .warning (f"{ msg } \n (see { error_code .url ()} )" )
87
+ def warn_code (error_code : ErrorCode , msg : str , allow_duplicate = True ):
88
+ logger_for ( allow_duplicate ) .warning (f"{ msg } \n (see { error_code .url ()} )" )
0 commit comments