Greenbone Vulnerability Management Libraries 22.18.1
logging_domain.c
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2025 Greenbone AG
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later
4 */
5
6#include "logging_domain.h"
7
14{
15 gchar *log_domain;
18 gchar *log_file;
19 GLogLevelFlags *default_level;
20 GIOChannel *log_channel;
22 gchar *syslog_ident;
25};
26
40gvm_logging_domain_new (gchar *log_domain)
41{
42 gvm_logging_domain_t *log_domain_entry;
43 /* Create the struct. */
44 log_domain_entry = g_malloc (sizeof (gvm_logging_domain_t));
45 /* Set the logdomain. */
46 log_domain_entry->log_domain = log_domain;
47 /* Initialize everything else to NULL. */
48 log_domain_entry->prepend_string = NULL;
49 log_domain_entry->prepend_time_format = NULL;
50 log_domain_entry->log_file = NULL;
51 log_domain_entry->default_level = NULL;
52 log_domain_entry->log_channel = NULL;
53 log_domain_entry->syslog_facility = NULL;
54 log_domain_entry->syslog_ident = NULL;
55 log_domain_entry->prepend_separator = NULL;
56
57 return log_domain_entry;
58}
59
71void
73{
74 g_free (log_domain->log_domain);
75 g_free (log_domain->prepend_string);
76 g_free (log_domain->prepend_time_format);
77 g_free (log_domain->log_file);
78 g_free (log_domain->default_level);
79 g_free (log_domain->syslog_ident);
80 g_free (log_domain->prepend_separator);
81
82 /* Drop the reference to the GIOChannel. */
83 if (log_domain->log_channel)
84 g_io_channel_unref (log_domain->log_channel);
85
86 /* Free the struct. */
87 g_free (log_domain);
88}
89
100gchar *
102{
103 return log_domain->log_domain;
104}
105
116gchar *
118{
119 return log_domain->log_file;
120}
121
132void
134 gchar *log_file)
135{
136 g_free (log_domain->log_file);
137 log_domain->log_file = log_file;
138}
139
150gchar *
152{
153 return log_domain->prepend_string;
154}
155
166void
168 gchar *prepend_string)
169{
170 g_free (log_domain->prepend_string);
171 log_domain->prepend_string = prepend_string;
172}
173
184gchar *
189
201void
203 gchar *prepend_time_format)
204{
205 g_free (log_domain->prepend_time_format);
206 log_domain->prepend_time_format = prepend_time_format;
207}
208
219GLogLevelFlags *
221{
222 return log_domain->default_level;
223}
224
234void
236 GLogLevelFlags default_level)
237{
238 g_free (log_domain->default_level);
239 log_domain->default_level = g_malloc (sizeof (gint));
240 *log_domain->default_level = default_level;
241}
242
253gchar *
258
269void
271 gchar *syslog_facility)
272{
273 g_free (log_domain->syslog_facility);
274 log_domain->syslog_facility = syslog_facility;
275}
276
287gchar *
289{
290 return log_domain->syslog_ident;
291}
292
302void
304 gchar *syslog_ident)
305{
306 g_free (log_domain->syslog_ident);
307 log_domain->syslog_ident = syslog_ident;
308}
309
320gchar *
325
336void
338 gchar *prepend_separator)
339{
340 g_free (log_domain->prepend_separator);
341 log_domain->prepend_separator = prepend_separator;
342}
343
354GIOChannel *
356{
357 return log_domain->log_channel;
358}
359
369void
371 GIOChannel *log_channel)
372{
373 if (log_domain->log_channel)
374 g_io_channel_unref (log_domain->log_channel);
375 log_domain->log_channel = log_channel;
376 if (log_channel)
377 g_io_channel_ref (log_channel);
378}
void gvm_logging_domain_set_prepend_separator(gvm_logging_domain_t *log_domain, gchar *prepend_separator)
Sets the prepend separator for the logging domain.
Definition logging_domain.c:337
GIOChannel * gvm_logging_domain_get_log_channel(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:355
void gvm_logging_domain_set_log_file(gvm_logging_domain_t *log_domain, gchar *log_file)
Sets the log file for the logging domain.
Definition logging_domain.c:133
void gvm_logging_domain_set_syslog_ident(gvm_logging_domain_t *log_domain, gchar *syslog_ident)
Sets the syslog ident for the logging domain.
Definition logging_domain.c:303
void gvm_logging_domain_set_prepend_time_format(gvm_logging_domain_t *log_domain, gchar *prepend_time_format)
Sets the prepend time format for the logging domain.
Definition logging_domain.c:202
void gvm_logging_domain_set_syslog_facility(gvm_logging_domain_t *log_domain, gchar *syslog_facility)
Sets the syslog facility for the logging domain.
Definition logging_domain.c:270
GLogLevelFlags * gvm_logging_domain_get_default_level(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:220
gvm_logging_domain_t * gvm_logging_domain_new(gchar *log_domain)
Function to initialize logging instance.
Definition logging_domain.c:40
gchar * gvm_logging_domain_get_prepend_time_format(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:185
gchar * gvm_logging_domain_get_syslog_ident(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:288
void gvm_logging_domain_set_log_channel(gvm_logging_domain_t *log_domain, GIOChannel *log_channel)
Sets the log channel for the logging domain.
Definition logging_domain.c:370
void gvm_logging_domain_free(gvm_logging_domain_t *log_domain)
Frees the resources associated with the given logging domain.
Definition logging_domain.c:72
gchar * gvm_logging_domain_get_log_file(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:117
void gvm_logging_domain_set_prepend_string(gvm_logging_domain_t *log_domain, gchar *prepend_string)
Sets the preprend string for the logging domain.
Definition logging_domain.c:167
gchar * gvm_logging_domain_get_log_domain(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:101
void gvm_logging_domain_set_default_level(gvm_logging_domain_t *log_domain, GLogLevelFlags default_level)
Sets the default log level for the logging domain.
Definition logging_domain.c:235
gchar * gvm_logging_domain_get_prepend_separator(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:321
gchar * gvm_logging_domain_get_prepend_string(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:151
gchar * gvm_logging_domain_get_syslog_facility(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:254
Implementation of logging domain handling.
struct gvm_logging_domain gvm_logging_domain_t
Definition logging_domain.h:15
Definition logging_domain.c:14
GLogLevelFlags * default_level
What severity level to use as default.
Definition logging_domain.c:19
GIOChannel * log_channel
Gio Channel - FD holder for logfile.
Definition logging_domain.c:20
gchar * log_domain
Affected logdomain e.g libnasl.
Definition logging_domain.c:15
gchar * log_file
Where to log to.
Definition logging_domain.c:18
gchar * syslog_facility
Syslog facility to use for syslog logging.
Definition logging_domain.c:21
gchar * syslog_ident
Syslog ident to use for syslog logging.
Definition logging_domain.c:22
gchar * prepend_separator
Definition logging_domain.c:23
gchar * prepend_time_format
If prependstring has t, format for strftime.
Definition logging_domain.c:17
gchar * prepend_string
Prepend this string before every message.
Definition logging_domain.c:16