Annotation of embedaddon/strongswan/src/libcharon/bus/listeners/file_logger.h, revision 1.1.1.2
1.1 misho 1: /*
1.1.1.2 ! misho 2: * Copyright (C) 2012-2020 Tobias Brunner
1.1 misho 3: * Copyright (C) 2006 Martin Willi
4: * HSR Hochschule fuer Technik Rapperswil
5: *
6: * This program is free software; you can redistribute it and/or modify it
7: * under the terms of the GNU General Public License as published by the
8: * Free Software Foundation; either version 2 of the License, or (at your
9: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
10: *
11: * This program is distributed in the hope that it will be useful, but
12: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14: * for more details.
15: */
16:
17: /**
18: * @defgroup file_logger file_logger
19: * @{ @ingroup listeners
20: */
21:
22: #ifndef FILE_LOGGER_H_
23: #define FILE_LOGGER_H_
24:
25: #include <bus/listeners/logger.h>
26:
27: typedef struct file_logger_t file_logger_t;
28:
29: /**
30: * Logger to files which implements listener_t.
31: */
32: struct file_logger_t {
33:
34: /**
35: * Implements the logger_t interface.
36: */
37: logger_t logger;
38:
39: /**
40: * Set the loglevel for a debug group.
41: *
42: * @param group debug group to set
43: * @param level max level to log (0..4)
44: */
45: void (*set_level) (file_logger_t *this, debug_t group, level_t level);
46:
47: /**
48: * Set options used by this logger
49: *
50: * @param time_format format of timestamp prefix, as in strftime(), cloned
51: * @param add_ms TRUE to add the number of milliseconds within the
52: * current second after the timestamp
53: * @param ike_name TRUE to prefix the name of the IKE_SA
1.1.1.2 ! misho 54: * @param log_level TRUE to include the log level in the message
1.1 misho 55: */
56: void (*set_options) (file_logger_t *this, char *time_format, bool add_ms,
1.1.1.2 ! misho 57: bool ike_name, bool log_level);
1.1 misho 58:
59: /**
60: * Open (or reopen) the log file according to the given parameters
61: *
62: * @param flush_line TRUE to flush buffers after every logged line
63: * @param append FALSE to overwrite an existing file, TRUE to append
64: */
65: void (*open) (file_logger_t *this, bool flush_line, bool append);
66:
67: /**
68: * Destroys a file_logger_t object.
69: */
70: void (*destroy) (file_logger_t *this);
71: };
72:
73: /**
74: * Constructor to create a file_logger_t object.
75: *
76: * The logger has to be opened via file_logger_t.open() before anything is
77: * logged.
78: *
79: * @param filename name of the log file (stderr and stdout are handled
80: * specially), cloned
81: * @return file_logger_t object
82: */
83: file_logger_t *file_logger_create(char *filename);
84:
85: #endif /** FILE_LOGGER_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>