- fixed doxygen build
[strongswan.git] / Source / lib / utils / logger_manager.h
index bc8f0e6..a3ff5a3 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <utils/logger.h>
 
+#define INITIAL_LOG_OUTPUT stdout
 
 typedef enum logger_context_t logger_context_t;
 
@@ -56,6 +57,9 @@ enum logger_context_t {
        PAYLOAD,
        DER_DECODER,
        DER_ENCODER,
+       ASN1,
+       XFRM,
+       LEAK_DETECT,
        LOGGER_CONTEXT_ROOF,
 };
 
@@ -68,9 +72,13 @@ typedef struct logger_manager_t logger_manager_t;
  * The logger manager manages all logger_t object in a list and
  * allows their manipulation. Via a logger_context_t, the loglevel
  * of a specific logging type can be adjusted at runtime.
+ * This class differs from others, as it has no constructor or destroy
+ * function. The one and only instance "logger_manager" is created at
+ * library start and destroyed at exit.
  * 
  * @b Constructors:
- *  - logger_manager_create()
+ *  - none, logger_manager is the single instance
+ *    use logger_manager_init/logger_manager_cleanup
  * 
  * @see logger_t
  * 
@@ -130,26 +138,23 @@ struct logger_manager_t {
         * @param log_level     logger level to disable
         */
        void (*set_output) (logger_manager_t *this, logger_context_t context, FILE *output);
-       
-       /**
-        * @brief Destroys a logger_manager_t object.
-        * 
-        * All managed logger_t objects are also destroyed.
-        *
-        * @param this          logger_manager_t object
-        */
-       void (*destroy) (logger_manager_t *this);
 };
 
 /**
- * @brief Constructor to create a logger_manager_t object.
- *
- * @param default_log_level    default log level for all context
- * @return                                             logger_manager_t object
- * 
- * @ingroup utils
+ * The single and global instance of the logger_manager
+ */
+extern logger_manager_t *logger_manager;
+
+/**
+ * Initialize the logger manager with all its logger.
+ * Has to be called before logger_manager is accessed.
  */
-logger_manager_t *logger_manager_create(log_level_t default_log_level);
+void logger_manager_init();
 
+/**
+ * Free any resources hold by the logger manager. Do
+ * not access logger_manager after this call.
+ */
+void logger_manager_cleanup();
 
 #endif /*LOGGER_MANAGER_H_*/