mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
dmeventd: separate dm and dmeventd logging
Ensure different logging function for dmeventd.c logging and dm and lvm library. We can recognize we want to show every log_info() and log_notice() message from dmeventd.c code while not exposing those from libdm/libdevmapper-event Also switch to use log with errno - it's not changing anything and doesn't bring any more features yet to dmeventd logging but we just properly pass dm_errno_or_class properly through the whole code stack for possible future use (i.e. support of class logging for dmeventd).
This commit is contained in:
parent
cd468b6218
commit
4b4d19e3aa
@ -1,5 +1,6 @@
|
|||||||
Version 1.02.136 -
|
Version 1.02.136 -
|
||||||
======================================
|
======================================
|
||||||
|
Make log messages from dm and lvm library differnt from dmeventd.
|
||||||
Notice and Info messages are again logged from dmeventd and its plugins.
|
Notice and Info messages are again logged from dmeventd and its plugins.
|
||||||
Dmeventd now also respects DM_ABORT_ON_INTERNAL_ERRORS as libdm based tool.
|
Dmeventd now also respects DM_ABORT_ON_INTERNAL_ERRORS as libdm based tool.
|
||||||
Report as non default dm logging also when logging with errno was changed.
|
Report as non default dm logging also when logging with errno was changed.
|
||||||
|
@ -99,13 +99,28 @@ static time_t _idle_since = 0;
|
|||||||
static char **_initial_registrations = 0;
|
static char **_initial_registrations = 0;
|
||||||
|
|
||||||
/* FIXME Make configurable at runtime */
|
/* FIXME Make configurable at runtime */
|
||||||
__attribute__((format(printf, 4, 5)))
|
|
||||||
static void _dmeventd_log(int level, const char *file, int line,
|
/* All libdm messages */
|
||||||
const char *format, ...)
|
__attribute__((format(printf, 5, 6)))
|
||||||
|
static void _libdm_log(int level, const char *file, int line,
|
||||||
|
int dm_errno_or_class, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
dm_event_log("dm", level, file, line, 0, format, ap);
|
dm_event_log("#dm", level, file, line, dm_errno_or_class, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All dmeventd messages */
|
||||||
|
#undef LOG_MESG
|
||||||
|
#define LOG_MESG(l, f, ln, e, x...) _dmeventd_log(l, f, ln, e, ## x)
|
||||||
|
__attribute__((format(printf, 5, 6)))
|
||||||
|
static void _dmeventd_log(int level, const char *file, int line,
|
||||||
|
int dm_errno_or_class, const char *format, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, format);
|
||||||
|
dm_event_log("dmeventd", level, file, line, dm_errno_or_class, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2191,7 +2206,7 @@ int main(int argc, char *argv[])
|
|||||||
openlog("dmeventd", LOG_PID, LOG_DAEMON);
|
openlog("dmeventd", LOG_PID, LOG_DAEMON);
|
||||||
|
|
||||||
dm_event_log_set(_debug_level, _use_syslog);
|
dm_event_log_set(_debug_level, _use_syslog);
|
||||||
dm_log_init(_dmeventd_log);
|
dm_log_with_errno_init(_libdm_log);
|
||||||
|
|
||||||
(void) dm_prepare_selinux_context(DMEVENTD_PIDFILE, S_IFREG);
|
(void) dm_prepare_selinux_context(DMEVENTD_PIDFILE, S_IFREG);
|
||||||
if (dm_create_lockfile(DMEVENTD_PIDFILE) == 0)
|
if (dm_create_lockfile(DMEVENTD_PIDFILE) == 0)
|
||||||
|
@ -32,7 +32,7 @@ static int _register_count = 0;
|
|||||||
static struct dm_pool *_mem_pool = NULL;
|
static struct dm_pool *_mem_pool = NULL;
|
||||||
static void *_lvm_handle = NULL;
|
static void *_lvm_handle = NULL;
|
||||||
|
|
||||||
DM_EVENT_LOG_FN("lvm")
|
DM_EVENT_LOG_FN("#lvm")
|
||||||
|
|
||||||
static void _lvm2_print_log(int level, const char *file, int line,
|
static void _lvm2_print_log(int level, const char *file, int line,
|
||||||
int dm_errno_or_class, const char *msg)
|
int dm_errno_or_class, const char *msg)
|
||||||
|
Loading…
Reference in New Issue
Block a user