Coverage for postrfp/conf/logconf.py: 100%
5 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
1from typing import Any
2from postrfp import conf
4PRODUCTION: dict[str, Any] = {
5 "version": 1,
6 "disable_existing_loggers": False,
7 "formatters": {
8 "verbose": {"format": "%(levelname)s %(asctime)s %(name)s %(message)s"}
9 },
10 "handlers": {
11 "stderr": {
12 "level": "INFO",
13 "class": "logging.StreamHandler",
14 "formatter": "verbose",
15 },
16 "file": {
17 "class": "logging.handlers.RotatingFileHandler",
18 "level": "INFO",
19 "formatter": "verbose",
20 "filename": f"{conf.CONF.log_directory}/postrfp.log",
21 "mode": "a",
22 "maxBytes": 10485760,
23 "backupCount": 5,
24 },
25 "jobslog": {
26 "class": "logging.handlers.RotatingFileHandler",
27 "level": "DEBUG",
28 "formatter": "verbose",
29 "filename": f"{conf.CONF.log_directory}/jobs.log",
30 "mode": "a",
31 "maxBytes": 10485760,
32 "backupCount": 5,
33 },
34 "email": {
35 "level": "ERROR",
36 "class": "postrfp.conf.logHandlers.PostmarkHandler",
37 "fromaddr": "notifications@supplierselect.com",
38 "toaddrs": ["support@supplierselect.com", "son.le1755@gmail.com"],
39 "subject": "POSTRFP Error",
40 },
41 },
42 "loggers": {
43 "postrfp": {
44 "handlers": ["file", "email"],
45 "level": "WARNING",
46 "propagate": False,
47 },
48 "postrfp.shared.fetch": {
49 "handlers": ["file"],
50 "level": "INFO",
51 "propagate": False,
52 },
53 "postrfp.shared.utils.config": {
54 "handlers": ["file", "stderr"],
55 "level": "INFO",
56 "propagate": False,
57 },
58 "postrfp.web.base": {
59 "handlers": ["stderr"],
60 "level": "INFO",
61 "propagate": False,
62 },
63 "postrfp.model.composite": {
64 "handlers": ["file"],
65 "level": "INFO",
66 "propagate": False,
67 },
68 "postrfp.mail": {
69 "handlers": ["stderr", "file"],
70 "level": "WARNING",
71 "propagate": False,
72 },
73 "postrfp.jobs": {"handlers": ["jobslog"], "level": "INFO", "propagate": False},
74 "postrfp.web.hooks": {
75 "handlers": ["jobslog"],
76 "level": "INFO",
77 "propagate": False,
78 },
79 },
80}
82DEVELOPMENT: dict[str, Any] = {
83 "version": 1,
84 "disable_existing_loggers": False,
85 "formatters": {
86 "simple": {"format": "%(levelname)s %(name)s %(message)s"},
87 },
88 "handlers": {
89 "stderr": {
90 "level": "DEBUG",
91 "class": "logging.StreamHandler",
92 "formatter": "simple",
93 }
94 },
95 "loggers": {
96 "postrfp": {"handlers": ["stderr"], "level": "INFO", "propagate": False},
97 "watchdog": {"handlers": ["stderr"], "level": "INFO"},
98 "werkzeug": {"level": "INFO"},
99 "sqlalchemy.engine": {"handlers": ["stderr"], "level": "WARN"},
100 "sqlalchemy.engine.base.Engine": {"level": "WARN"},
101 },
102}
104TEST: dict[str, Any] = {
105 "version": 1,
106 "disable_existing_loggers": True,
107 "formatters": {
108 "simple": {"format": "%(levelname)s %(name)s %(message)s"},
109 },
110 "handlers": {
111 "stderr": {
112 "level": "ERROR",
113 "class": "logging.StreamHandler",
114 "formatter": "simple",
115 }
116 },
117 "loggers": {
118 "postrfp": {"handlers": ["stderr"], "level": "ERROR", "propagate": False},
119 "postrfp.shared.utils": {"handlers": ["stderr"], "level": "CRITICAL"},
120 "postrfp.benchmark": {"handlers": ["stderr"], "level": "INFO"},
121 },
122}