basic/log: add concept of "synthethic errnos"

Synthetic errnos are processed like normal, and may be used in %m and become
the return value from log_*(), but they are not logged in the journal.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2018-11-22 10:45:08 +01:00
parent 883eb9be98
commit 52d86690d6
3 changed files with 51 additions and 66 deletions
+5 -4
View File
@@ -36,10 +36,11 @@ typedef enum LogTarget{
_LOG_TARGET_INVALID = -1
} LogTarget;
#define LOG_REALM_PLUS_LEVEL(realm, level) \
((realm) << 10 | (level))
#define LOG_REALM_REMOVE_LEVEL(realm_level) \
((realm_level >> 10))
#define LOG_REALM_PLUS_LEVEL(realm, level) ((realm) << 10 | (level))
#define LOG_REALM_REMOVE_LEVEL(realm_level) ((realm_level) >> 10)
#define SYNTHETIC_ERRNO(num) (1 << 30 | (num))
#define IS_SYNTHETIC_ERRNO(val) ((val) >> 30 & 1)
#define ERRNO_VALUE(val) (abs(val) & 255)
void log_set_target(LogTarget target);
void log_set_max_level_realm(LogRealm realm, int level);