Greenbone Vulnerability Management Libraries 22.35.6
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 if (log_domain == NULL)
75 return;
76
77 g_free (log_domain->log_domain);
78 g_free (log_domain->prepend_string);
79 g_free (log_domain->prepend_time_format);
80 g_free (log_domain->log_file);
81 g_free (log_domain->default_level);
82 g_free (log_domain->syslog_facility);
83 g_free (log_domain->syslog_ident);
84 g_free (log_domain->prepend_separator);
85
86 /* Drop the reference to the GIOChannel. */
87 if (log_domain->log_channel)
88 g_io_channel_unref (log_domain->log_channel);
89
90 /* Free the struct. */
91 g_free (log_domain);
92}
93
104gchar *
106{
107 return log_domain->log_domain;
108}
109
120gchar *
122{
123 return log_domain->log_file;
124}
125
136void
138 gchar *log_file)
139{
140 g_free (log_domain->log_file);
141 log_domain->log_file = log_file;
142}
143
154gchar *
156{
157 return log_domain->prepend_string;
158}
159
170void
172 gchar *prepend_string)
173{
174 g_free (log_domain->prepend_string);
175 log_domain->prepend_string = prepend_string;
176}
177
188gchar *
193
205void
207 gchar *prepend_time_format)
208{
209 g_free (log_domain->prepend_time_format);
210 log_domain->prepend_time_format = prepend_time_format;
211}
212
223GLogLevelFlags *
225{
226 return log_domain->default_level;
227}
228
238void
240 GLogLevelFlags default_level)
241{
242 g_free (log_domain->default_level);
243 log_domain->default_level = g_malloc (sizeof (gint));
244 *log_domain->default_level = default_level;
245}
246
257gchar *
262
273void
275 gchar *syslog_facility)
276{
277 g_free (log_domain->syslog_facility);
278 log_domain->syslog_facility = syslog_facility;
279}
280
291gchar *
293{
294 return log_domain->syslog_ident;
295}
296
306void
308 gchar *syslog_ident)
309{
310 g_free (log_domain->syslog_ident);
311 log_domain->syslog_ident = syslog_ident;
312}
313
324gchar *
329
340void
342 gchar *prepend_separator)
343{
344 g_free (log_domain->prepend_separator);
345 log_domain->prepend_separator = prepend_separator;
346}
347
358GIOChannel *
360{
361 return log_domain->log_channel;
362}
363
373void
375 GIOChannel *log_channel)
376{
377 if (log_domain->log_channel)
378 g_io_channel_unref (log_domain->log_channel);
379 log_domain->log_channel = log_channel;
380 if (log_channel)
381 g_io_channel_ref (log_channel);
382}
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:341
GIOChannel * gvm_logging_domain_get_log_channel(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:359
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:137
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:307
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:206
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:274
GLogLevelFlags * gvm_logging_domain_get_default_level(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:224
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:189
gchar * gvm_logging_domain_get_syslog_ident(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:292
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:374
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:121
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:171
gchar * gvm_logging_domain_get_log_domain(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:105
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:239
gchar * gvm_logging_domain_get_prepend_separator(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:325
gchar * gvm_logging_domain_get_prepend_string(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:155
gchar * gvm_logging_domain_get_syslog_facility(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:258
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