文件操作 - lws-logs.h
返回文件管理
返回主菜单
删除本文件
文件: /usr/local/src/netdata/externaldeps/libwebsockets/include/libwebsockets/lws-logs.h
编辑文件内容
/* * libwebsockets - small server side websockets and web server implementation * * Copyright (C) 2010-2018 Andy Green <andy@warmcat.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation: * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA * * included from libwebsockets.h */ /** \defgroup log Logging * * ##Logging * * Lws provides flexible and filterable logging facilities, which can be * used inside lws and in user code. * * Log categories may be individually filtered bitwise, and directed to built-in * sinks for syslog-compatible logging, or a user-defined function. */ ///@{ enum lws_log_levels { LLL_ERR = 1 << 0, LLL_WARN = 1 << 1, LLL_NOTICE = 1 << 2, LLL_INFO = 1 << 3, LLL_DEBUG = 1 << 4, LLL_PARSER = 1 << 5, LLL_HEADER = 1 << 6, LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, LLL_USER = 1 << 10, LLL_THREAD = 1 << 11, LLL_COUNT = 12 /* set to count of valid flags */ }; /** * lwsl_timestamp: generate logging timestamp string * * \param level: logging level * \param p: char * buffer to take timestamp * \param len: length of p * * returns length written in p */ LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); #if defined(LWS_PLAT_OPTEE) && !defined(LWS_WITH_NETWORK) #define _lws_log(aaa, ...) SMSG(__VA_ARGS__) #else LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); #endif /* these guys are unconditionally included */ #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) /* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ #if defined(_DEBUG) #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif #define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__) #define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__) #define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__) #define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__) #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) #define lwsl_thread(...) _lws_log(LLL_THREAD, __VA_ARGS__) #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif #define lwsl_info(...) do {} while(0) #define lwsl_debug(...) do {} while(0) #define lwsl_parser(...) do {} while(0) #define lwsl_header(...) do {} while(0) #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) #define lwsl_thread(...) do {} while(0) #endif #define lwsl_hexdump_err(...) lwsl_hexdump_level(LLL_ERR, __VA_ARGS__) #define lwsl_hexdump_warn(...) lwsl_hexdump_level(LLL_WARN, __VA_ARGS__) #define lwsl_hexdump_notice(...) lwsl_hexdump_level(LLL_NOTICE, __VA_ARGS__) #define lwsl_hexdump_info(...) lwsl_hexdump_level(LLL_INFO, __VA_ARGS__) #define lwsl_hexdump_debug(...) lwsl_hexdump_level(LLL_DEBUG, __VA_ARGS__) /** * lwsl_hexdump_level() - helper to hexdump a buffer at a selected debug level * * \param level: one of LLL_ constants * \param vbuf: buffer start to dump * \param len: length of buffer to dump * * If \p level is visible, does a nice hexdump -C style dump of \p vbuf for * \p len bytes. This can be extremely convenient while debugging. */ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump_level(int level, const void *vbuf, size_t len); /** * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) * * \param buf: buffer start to dump * \param len: length of buffer to dump * * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. * It's better to use lwsl_hexdump_level(level, ... directly so you can control * the visibility. */ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(const void *buf, size_t len); /** * lws_is_be() - returns nonzero if the platform is Big Endian */ static LWS_INLINE int lws_is_be(void) { const int probe = ~0xff; return *(const char *)&probe; } /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from * \param log_emit_function: NULL to leave it as it is, or a user-supplied * function to perform log string emission instead of * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and * emission on stderr. If stderr is a tty (according to isatty()) then * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, void (*log_emit_function)(int level, const char *line)); /** * lwsl_emit_syslog() - helper log emit function writes to system log * * \param level: one of LLL_ log level indexes * \param line: log string * * You use this by passing the function pointer to lws_set_log_level(), to set * it as the log emit function, it is not called directly. */ LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); /** * lwsl_emit_stderr() - helper log emit function writes to stderr * * \param level: one of LLL_ log level indexes * \param line: log string * * You use this by passing the function pointer to lws_set_log_level(), to set * it as the log emit function, it is not called directly. * * It prepends a system timestamp like [2018/11/13 07:41:57:3989] * * If stderr is a tty, then ansi colour codes are added. */ LWS_VISIBLE LWS_EXTERN void lwsl_emit_stderr(int level, const char *line); /** * lwsl_emit_stderr_notimestamp() - helper log emit function writes to stderr * * \param level: one of LLL_ log level indexes * \param line: log string * * You use this by passing the function pointer to lws_set_log_level(), to set * it as the log emit function, it is not called directly. * * If stderr is a tty, then ansi colour codes are added. */ LWS_VISIBLE LWS_EXTERN void lwsl_emit_stderr_notimestamp(int level, const char *line); /** * lwsl_visible() - returns true if the log level should be printed * * \param level: one of LLL_ log level indexes * * This is useful if you have to do work to generate the log content, you * can skip the work if the log level used to print it is not actually * enabled at runtime. */ LWS_VISIBLE LWS_EXTERN int lwsl_visible(int level); ///@}
修改文件时间
将文件时间修改为当前时间的前一年
删除文件