e4418354c0
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20221219130205.687815-4-berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
/*
|
|
* FUSE: Filesystem in Userspace
|
|
* Copyright (C) 2019 Red Hat, Inc.
|
|
*
|
|
* This program can be distributed under the terms of the GNU LGPLv2.
|
|
* See the file COPYING.LIB.
|
|
*/
|
|
|
|
#ifndef FUSE_LOG_H_
|
|
#define FUSE_LOG_H_
|
|
|
|
/** @file
|
|
*
|
|
* This file defines the logging interface of FUSE
|
|
*/
|
|
|
|
|
|
/**
|
|
* Log severity level
|
|
*
|
|
* These levels correspond to syslog(2) log levels since they are widely used.
|
|
*/
|
|
enum fuse_log_level {
|
|
FUSE_LOG_EMERG,
|
|
FUSE_LOG_ALERT,
|
|
FUSE_LOG_CRIT,
|
|
FUSE_LOG_ERR,
|
|
FUSE_LOG_WARNING,
|
|
FUSE_LOG_NOTICE,
|
|
FUSE_LOG_INFO,
|
|
FUSE_LOG_DEBUG
|
|
};
|
|
|
|
/**
|
|
* Log message handler function.
|
|
*
|
|
* This function must be thread-safe. It may be called from any libfuse
|
|
* function, including fuse_parse_cmdline() and other functions invoked before
|
|
* a FUSE filesystem is created.
|
|
*
|
|
* Install a custom log message handler function using fuse_set_log_func().
|
|
*
|
|
* @param level log severity level
|
|
* @param fmt sprintf-style format string including newline
|
|
* @param ap format string arguments
|
|
*/
|
|
typedef void (*fuse_log_func_t)(enum fuse_log_level level, const char *fmt,
|
|
va_list ap)
|
|
G_GNUC_PRINTF(2, 0);
|
|
|
|
/**
|
|
* Install a custom log handler function.
|
|
*
|
|
* Log messages are emitted by libfuse functions to report errors and debug
|
|
* information. Messages are printed to stderr by default but this can be
|
|
* overridden by installing a custom log message handler function.
|
|
*
|
|
* The log message handler function is global and affects all FUSE filesystems
|
|
* created within this process.
|
|
*
|
|
* @param func a custom log message handler function or NULL to revert to
|
|
* the default
|
|
*/
|
|
void fuse_set_log_func(fuse_log_func_t func);
|
|
|
|
/**
|
|
* Emit a log message
|
|
*
|
|
* @param level severity level (FUSE_LOG_ERR, FUSE_LOG_DEBUG, etc)
|
|
* @param fmt sprintf-style format string including newline
|
|
*/
|
|
void fuse_log(enum fuse_log_level level, const char *fmt, ...)
|
|
G_GNUC_PRINTF(2, 3);
|
|
|
|
#endif /* FUSE_LOG_H_ */
|