fuse_log.h (1938B)
1/* 2 * FUSE: Filesystem in Userspace 3 * Copyright (C) 2019 Red Hat, Inc. 4 * 5 * This program can be distributed under the terms of the GNU LGPLv2. 6 * See the file COPYING.LIB. 7 */ 8 9#ifndef FUSE_LOG_H_ 10#define FUSE_LOG_H_ 11 12/** @file 13 * 14 * This file defines the logging interface of FUSE 15 */ 16 17 18/** 19 * Log severity level 20 * 21 * These levels correspond to syslog(2) log levels since they are widely used. 22 */ 23enum fuse_log_level { 24 FUSE_LOG_EMERG, 25 FUSE_LOG_ALERT, 26 FUSE_LOG_CRIT, 27 FUSE_LOG_ERR, 28 FUSE_LOG_WARNING, 29 FUSE_LOG_NOTICE, 30 FUSE_LOG_INFO, 31 FUSE_LOG_DEBUG 32}; 33 34/** 35 * Log message handler function. 36 * 37 * This function must be thread-safe. It may be called from any libfuse 38 * function, including fuse_parse_cmdline() and other functions invoked before 39 * a FUSE filesystem is created. 40 * 41 * Install a custom log message handler function using fuse_set_log_func(). 42 * 43 * @param level log severity level 44 * @param fmt sprintf-style format string including newline 45 * @param ap format string arguments 46 */ 47typedef void (*fuse_log_func_t)(enum fuse_log_level level, const char *fmt, 48 va_list ap); 49 50/** 51 * Install a custom log handler function. 52 * 53 * Log messages are emitted by libfuse functions to report errors and debug 54 * information. Messages are printed to stderr by default but this can be 55 * overridden by installing a custom log message handler function. 56 * 57 * The log message handler function is global and affects all FUSE filesystems 58 * created within this process. 59 * 60 * @param func a custom log message handler function or NULL to revert to 61 * the default 62 */ 63void fuse_set_log_func(fuse_log_func_t func); 64 65/** 66 * Emit a log message 67 * 68 * @param level severity level (FUSE_LOG_ERR, FUSE_LOG_DEBUG, etc) 69 * @param fmt sprintf-style format string including newline 70 */ 71void fuse_log(enum fuse_log_level level, const char *fmt, ...); 72 73#endif /* FUSE_LOG_H_ */