]>
Commit | Line | Data |
---|---|---|
ee46c789 | 1 | /* |
7387863d DDAG |
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 | */ | |
ee46c789 DDAG |
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 | #include <stdarg.h> | |
18 | ||
ee46c789 DDAG |
19 | /** |
20 | * Log severity level | |
21 | * | |
22 | * These levels correspond to syslog(2) log levels since they are widely used. | |
23 | */ | |
24 | enum fuse_log_level { | |
7387863d DDAG |
25 | FUSE_LOG_EMERG, |
26 | FUSE_LOG_ALERT, | |
27 | FUSE_LOG_CRIT, | |
28 | FUSE_LOG_ERR, | |
29 | FUSE_LOG_WARNING, | |
30 | FUSE_LOG_NOTICE, | |
31 | FUSE_LOG_INFO, | |
32 | FUSE_LOG_DEBUG | |
ee46c789 DDAG |
33 | }; |
34 | ||
35 | /** | |
36 | * Log message handler function. | |
37 | * | |
38 | * This function must be thread-safe. It may be called from any libfuse | |
39 | * function, including fuse_parse_cmdline() and other functions invoked before | |
40 | * a FUSE filesystem is created. | |
41 | * | |
42 | * Install a custom log message handler function using fuse_set_log_func(). | |
43 | * | |
44 | * @param level log severity level | |
45 | * @param fmt sprintf-style format string including newline | |
46 | * @param ap format string arguments | |
47 | */ | |
7387863d DDAG |
48 | typedef void (*fuse_log_func_t)(enum fuse_log_level level, const char *fmt, |
49 | va_list ap); | |
ee46c789 DDAG |
50 | |
51 | /** | |
52 | * Install a custom log handler function. | |
53 | * | |
54 | * Log messages are emitted by libfuse functions to report errors and debug | |
55 | * information. Messages are printed to stderr by default but this can be | |
56 | * overridden by installing a custom log message handler function. | |
57 | * | |
58 | * The log message handler function is global and affects all FUSE filesystems | |
59 | * created within this process. | |
60 | * | |
61 | * @param func a custom log message handler function or NULL to revert to | |
62 | * the default | |
63 | */ | |
64 | void fuse_set_log_func(fuse_log_func_t func); | |
65 | ||
66 | /** | |
67 | * Emit a log message | |
68 | * | |
69 | * @param level severity level (FUSE_LOG_ERR, FUSE_LOG_DEBUG, etc) | |
70 | * @param fmt sprintf-style format string including newline | |
71 | */ | |
72 | void fuse_log(enum fuse_log_level level, const char *fmt, ...); | |
73 | ||
ee46c789 | 74 | #endif /* FUSE_LOG_H_ */ |