mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
Before, logs from deleted machines have been piling up, since there were no garbage collection mechanism. Now, virtlogd can be configured to periodically scan the log folder for orphan logs with no recent modifications and delete it. A single chain of recent and rotated logs is deleted in a single transaction. Signed-off-by: Oleg Vasilev <oleg.vasilev@virtuozzo.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
113 lines
2.4 KiB
Meson
113 lines
2.4 KiB
Meson
log_driver_sources = [
|
|
'log_manager.c',
|
|
]
|
|
|
|
log_protocol = 'log_protocol.x'
|
|
|
|
log_protocol_generated = []
|
|
|
|
log_protocol_header_generated = custom_target(
|
|
'log_protocol.h',
|
|
input: log_protocol,
|
|
output: 'log_protocol.h',
|
|
command: [
|
|
genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@'
|
|
],
|
|
)
|
|
log_protocol_generated += log_protocol_header_generated
|
|
|
|
log_protocol_generated += custom_target(
|
|
'log_protocol.c',
|
|
input: log_protocol,
|
|
output: 'log_protocol.c',
|
|
command: [
|
|
genprotocol_prog, rpcgen_prog, '-c', '@INPUT@', '@OUTPUT@'
|
|
],
|
|
)
|
|
|
|
log_daemon_sources = files(
|
|
'log_daemon.c',
|
|
'log_daemon_config.c',
|
|
'log_daemon_dispatch.c',
|
|
'log_handler.c',
|
|
'log_cleaner.c',
|
|
)
|
|
|
|
if conf.has('WITH_REMOTE')
|
|
log_driver_lib = static_library(
|
|
'virt_log_driver',
|
|
[
|
|
log_driver_sources,
|
|
log_protocol_generated,
|
|
],
|
|
dependencies: [
|
|
rpc_dep,
|
|
src_dep,
|
|
xdr_dep,
|
|
],
|
|
)
|
|
|
|
libvirt_libs += log_driver_lib
|
|
used_sym_files += 'libvirt_logging.syms'
|
|
else
|
|
sym_files += 'libvirt_logging.syms'
|
|
endif
|
|
|
|
if conf.has('WITH_LIBVIRTD')
|
|
log_daemon_generated = custom_target(
|
|
'log_daemon_dispatch_stubs.h',
|
|
input: log_protocol,
|
|
output: 'log_daemon_dispatch_stubs.h',
|
|
command: [
|
|
gendispatch_prog, '--mode=server',
|
|
'virLogManagerProtocol', 'VIR_LOG_MANAGER_PROTOCOL', '@INPUT@',
|
|
],
|
|
capture: true,
|
|
)
|
|
|
|
virt_daemons += {
|
|
'name': 'virtlogd',
|
|
'sources': [
|
|
log_daemon_sources,
|
|
log_daemon_generated,
|
|
log_protocol_generated,
|
|
],
|
|
'include': [
|
|
include_directories('.'),
|
|
],
|
|
}
|
|
|
|
virt_conf_files += files('virtlogd.conf')
|
|
virt_aug_files += files('virtlogd.aug')
|
|
virt_test_aug_files += {
|
|
'name': 'test_virtlogd.aug',
|
|
'aug': files('test_virtlogd.aug.in'),
|
|
'conf': files('virtlogd.conf'),
|
|
'test_name': 'virtlogd',
|
|
'test_srcdir': meson.current_source_dir(),
|
|
'test_builddir': meson.current_build_dir(),
|
|
}
|
|
|
|
virt_daemon_units += {
|
|
'service': 'virtlogd',
|
|
'service_in': files('virtlogd.service.in'),
|
|
'name': '',
|
|
'sockprefix': '',
|
|
'sockets': [ 'main', 'admin' ],
|
|
'socket_in': files('virtlogd.socket.in'),
|
|
'socket_admin_in': files('virtlogd-admin.socket.in'),
|
|
}
|
|
|
|
openrc_init_files += {
|
|
'name': 'virtlogd',
|
|
'in_file': files('virtlogd.init.in'),
|
|
}
|
|
endif
|
|
|
|
log_inc_dir = include_directories('.')
|
|
|
|
log_dep = declare_dependency(
|
|
include_directories: log_inc_dir,
|
|
sources: log_protocol_header_generated,
|
|
)
|