Greenbone Vulnerability Management Libraries 22.30.0
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_facility);
80 g_free (log_domain->syslog_ident);
81 g_free (log_domain->prepend_separator);
82
83 /* Drop the reference to the GIOChannel. */
84 if (log_domain->log_channel)
85 g_io_channel_unref (log_domain->log_channel);
86
87 /* Free the struct. */
88 g_free (log_domain);
89}
90
101gchar *
103{
104 return log_domain->log_domain;
105}
106
117gchar *
119{
120 return log_domain->log_file;
121}
122
133void
135 gchar *log_file)
136{
137 g_free (log_domain->log_file);
138 log_domain->log_file = log_file;
139}
140
151gchar *
153{
154 return log_domain->prepend_string;
155}
156
167void
169 gchar *prepend_string)
170{
171 g_free (log_domain->prepend_string);
172 log_domain->prepend_string = prepend_string;
173}
174
185gchar *
190
202void
204 gchar *prepend_time_format)
205{
206 g_free (log_domain->prepend_time_format);
207 log_domain->prepend_time_format = prepend_time_format;
208}
209
220GLogLevelFlags *
222{
223 return log_domain->default_level;
224}
225
235void
237 GLogLevelFlags default_level)
238{
239 g_free (log_domain->default_level);
240 log_domain->default_level = g_malloc (sizeof (gint));
241 *log_domain->default_level = default_level;
242}
243
254gchar *
259
270void
272 gchar *syslog_facility)
273{
274 g_free (log_domain->syslog_facility);
275 log_domain->syslog_facility = syslog_facility;
276}
277
288gchar *
290{
291 return log_domain->syslog_ident;
292}
293
303void
305 gchar *syslog_ident)
306{
307 g_free (log_domain->syslog_ident);
308 log_domain->syslog_ident = syslog_ident;
309}
310
321gchar *
326
337void
339 gchar *prepend_separator)
340{
341 g_free (log_domain->prepend_separator);
342 log_domain->prepend_separator = prepend_separator;
343}
344
355GIOChannel *
357{
358 return log_domain->log_channel;
359}
360
370void
372 GIOChannel *log_channel)
373{
374 if (log_domain->log_channel)
375 g_io_channel_unref (log_domain->log_channel);
376 log_domain->log_channel = log_channel;
377 if (log_channel)
378 g_io_channel_ref (log_channel);
379}
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:338
GIOChannel * gvm_logging_domain_get_log_channel(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:356
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:134
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:304
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:203
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:271
GLogLevelFlags * gvm_logging_domain_get_default_level(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:221
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:186
gchar * gvm_logging_domain_get_syslog_ident(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:289
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:371
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:118
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:168
gchar * gvm_logging_domain_get_log_domain(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:102
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:236
gchar * gvm_logging_domain_get_prepend_separator(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:322
gchar * gvm_logging_domain_get_prepend_string(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:152
gchar * gvm_logging_domain_get_syslog_facility(gvm_logging_domain_t *log_domain)
Definition logging_domain.c:255
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