16881f68fSopenharmony_ci/*
26881f68fSopenharmony_ci  FUSE: Filesystem in Userspace
36881f68fSopenharmony_ci  Copyright (C) 2019  Red Hat, Inc.
46881f68fSopenharmony_ci
56881f68fSopenharmony_ci  Logging API.
66881f68fSopenharmony_ci
76881f68fSopenharmony_ci  This program can be distributed under the terms of the GNU LGPLv2.
86881f68fSopenharmony_ci  See the file COPYING.LIB
96881f68fSopenharmony_ci*/
106881f68fSopenharmony_ci
116881f68fSopenharmony_ci#include "fuse_log.h"
126881f68fSopenharmony_ci
136881f68fSopenharmony_ci#include <stdarg.h>
146881f68fSopenharmony_ci#include <stdio.h>
156881f68fSopenharmony_ci
166881f68fSopenharmony_cistatic void default_log_func(
176881f68fSopenharmony_ci		__attribute__(( unused )) enum fuse_log_level level,
186881f68fSopenharmony_ci		const char *fmt, va_list ap)
196881f68fSopenharmony_ci{
206881f68fSopenharmony_ci	vfprintf(stderr, fmt, ap);
216881f68fSopenharmony_ci}
226881f68fSopenharmony_ci
236881f68fSopenharmony_cistatic fuse_log_func_t log_func = default_log_func;
246881f68fSopenharmony_ci
256881f68fSopenharmony_civoid fuse_set_log_func(fuse_log_func_t func)
266881f68fSopenharmony_ci{
276881f68fSopenharmony_ci	if (!func)
286881f68fSopenharmony_ci		func = default_log_func;
296881f68fSopenharmony_ci
306881f68fSopenharmony_ci	log_func = func;
316881f68fSopenharmony_ci}
326881f68fSopenharmony_ci
336881f68fSopenharmony_civoid fuse_log(enum fuse_log_level level, const char *fmt, ...)
346881f68fSopenharmony_ci{
356881f68fSopenharmony_ci	va_list ap;
366881f68fSopenharmony_ci
376881f68fSopenharmony_ci	va_start(ap, fmt);
386881f68fSopenharmony_ci	log_func(level, fmt, ap);
396881f68fSopenharmony_ci	va_end(ap);
406881f68fSopenharmony_ci}
41