X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=include%2Flog.h;h=5c530231de76f08925e6457b1c6151da83ac82ee;hp=11555ab77a6aa4dad62dde897bd29ab0a66068ce;hb=HEAD;hpb=bdc078914baedfa6e1b3352bb3f8d0fa99e0a719 diff --git a/include/log.h b/include/log.h index 11555ab7..5c530231 100644 --- a/include/log.h +++ b/include/log.h @@ -2,22 +2,34 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * * log.c: Logging functions. * */ -#ifndef _LOG_H -#define _LOG_H +#pragma once + +#include #include #include +/* We will include libi3.h which define its own version of LOG, ELOG. + * We want *our* version, so we undef the libi3 one. */ +#if defined(LOG) +#undef LOG +#endif +#if defined(ELOG) +#undef ELOG +#endif +#if defined(DLOG) +#undef DLOG +#endif /** ##__VA_ARGS__ means: leave out __VA_ARGS__ completely if it is empty, that is, delete the preceding comma */ #define LOG(fmt, ...) verboselog(fmt, ##__VA_ARGS__) #define ELOG(fmt, ...) errorlog("ERROR: " fmt, ##__VA_ARGS__) -#define DLOG(fmt, ...) debuglog("%s:%s:%d - " fmt, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__) +#define DLOG(fmt, ...) debuglog("%s:%s:%d - " fmt, STRIPPED__FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__) extern char *errorfilename; extern char *shmlogname; @@ -30,6 +42,24 @@ extern int shmlog_size; */ void init_logging(void); +/** + * Opens the logbuffer. + * + */ +void open_logbuffer(void); + +/** + * Closes the logbuffer. + * + */ +void close_logbuffer(void); + +/** + * Checks if debug logging is active. + * + */ +bool get_debug_logging(void); + /** * Set debug logging. * @@ -49,26 +79,27 @@ void set_verbosity(bool _verbose); * but only if debug logging was activated. * */ -void debuglog(char *fmt, ...); +void debuglog(char *fmt, ...) + __attribute__((format(printf, 1, 2))); /** * Logs the given message to stdout while prefixing the current time to it. * */ -void errorlog(char *fmt, ...); +void errorlog(char *fmt, ...) + __attribute__((format(printf, 1, 2))); /** * Logs the given message to stdout while prefixing the current time to it, * but only if verbose mode is activated. * */ -void verboselog(char *fmt, ...); +void verboselog(char *fmt, ...) + __attribute__((format(printf, 1, 2))); /** - * Logs the given message to stdout while prefixing the current time to it. - * This is to be called by LOG() which includes filename/linenumber - * + * Deletes the unused log files. Useful if i3 exits immediately, eg. + * because --get-socketpath was called. We don't care for syscall + * failures. This function is invoked automatically when exiting. */ -void slog(char *fmt, va_list args); - -#endif +void purge_zerobyte_logfile(void);