1 /* Copyright (c) 2018-2021, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
3 
4 /**
5  * \file log_sys.c
6  * \brief Setup and tear down the logging module.
7  **/
8 
9 #include "orconfig.h"
10 #include "lib/subsys/subsys.h"
11 #include "lib/log/escape.h"
12 #include "lib/log/log.h"
13 #include "lib/log/log_sys.h"
14 
15 static int
subsys_logging_initialize(void)16 subsys_logging_initialize(void)
17 {
18   init_logging(0);
19   return 0;
20 }
21 
22 static void
subsys_logging_shutdown(void)23 subsys_logging_shutdown(void)
24 {
25   logs_free_all();
26   escaped(NULL);
27 }
28 
29 const subsys_fns_t sys_logging = {
30   .name = "log",
31   SUBSYS_DECLARE_LOCATION(),
32   .supported = true,
33   /* Logging depends on threads, approx time, raw logging, and security.
34    * Most other lib modules depend on logging. */
35   .level = -90,
36   .initialize = subsys_logging_initialize,
37   .shutdown = subsys_logging_shutdown,
38 };
39