Generalize qemuDomainLogContextNew()

Allow to specify a basename for the log file so that
qemuDomainLogContextNew() can be used to create log contexts for
secondary loggers.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Jonathon Jongsma 2023-01-11 13:54:06 -06:00
parent 8d73929e04
commit abdc4f2092
3 changed files with 6 additions and 4 deletions

View File

@ -7104,7 +7104,8 @@ void qemuDomainObjCheckNetTaint(virQEMUDriver *driver,
qemuDomainLogContext *qemuDomainLogContextNew(virQEMUDriver *driver,
virDomainObj *vm)
virDomainObj *vm,
const char *basename)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
qemuDomainLogContext *ctxt = QEMU_DOMAIN_LOG_CONTEXT(g_object_new(QEMU_TYPE_DOMAIN_LOG_CONTEXT, NULL));
@ -7113,7 +7114,7 @@ qemuDomainLogContext *qemuDomainLogContextNew(virQEMUDriver *driver,
ctxt->writefd = -1;
ctxt->readfd = -1;
ctxt->path = g_strdup_printf("%s/%s.log", cfg->logDir, vm->def->name);
ctxt->path = g_strdup_printf("%s/%s.log", cfg->logDir, basename);
if (cfg->stdioLogD) {
ctxt->manager = virLogManagerNew(driver->privileged);

View File

@ -657,7 +657,8 @@ void qemuDomainObjCheckNetTaint(virQEMUDriver *driver,
qemuDomainLogContext *logCtxt);
qemuDomainLogContext *qemuDomainLogContextNew(virQEMUDriver *driver,
virDomainObj *vm);
virDomainObj *vm,
const char *basename);
int qemuDomainLogContextWrite(qemuDomainLogContext *ctxt,
const char *fmt, ...) G_GNUC_PRINTF(2, 3);
ssize_t qemuDomainLogContextRead(qemuDomainLogContext *ctxt,

View File

@ -7641,7 +7641,7 @@ qemuProcessLaunch(virConnectPtr conn,
hookData.cfg = cfg;
VIR_DEBUG("Creating domain log file");
if (!(logCtxt = qemuDomainLogContextNew(driver, vm))) {
if (!(logCtxt = qemuDomainLogContextNew(driver, vm, vm->def->name))) {
virLastErrorPrefixMessage("%s", _("can't connect to virtlogd"));
goto cleanup;
}