CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
logfile.h
Go to the documentation of this file.
1#pragma once
4
30
31#include <cx/fs/vfs.h>
32#include <cx/log/log.h>
33
42
55
61
80
82typedef struct LogFileData LogFileData;
83
84// ============================================================================
85// High Level Interface
86// ============================================================================
87
108LogFileData* logfileCreate(_Inout_ VFS* vfs, _In_ strref filename, _In_ LogFileConfig* config);
109
120LogDest* logfileRegister(int maxlevel, _In_opt_ LogCategory* catfilter, _In_ LogFileData* logfile);
121
142LogDest* logfileRegisterWithDefer(int maxlevel, _In_opt_ LogCategory* catfilter,
143 _In_ LogFileData* logfile, _In_ LogDest* deferdest);
144
145// ============================================================================
146// Low Level Interface
147// ============================================================================
148//
149// These callbacks can be used directly with logRegisterDest() for custom
150// destination handling. Most users should use the high-level interface above.
151
163void logfileMsgFunc(int level, _In_opt_ LogCategory* cat, int64 timestamp, _In_opt_ strref msg,
164 uint32 batchid, _In_opt_ void* userdata);
165
172void logfileBatchFunc(uint32 batchid, _In_opt_ void* userdata);
173
179void logfileCloseFunc(_In_opt_ void* userdata);
180
struct LogDest LogDest
Opaque handle to a registered log destination.
Definition log.h:87
void logfileBatchFunc(uint32 batchid, void *userdata)
void logfileCloseFunc(void *userdata)
LogDest * logfileRegisterWithDefer(int maxlevel, LogCategory *catfilter, LogFileData *logfile, LogDest *deferdest)
LogDest * logfileRegister(int maxlevel, LogCategory *catfilter, LogFileData *logfile)
struct LogFileData LogFileData
Opaque handle for file logging state.
Definition logfile.h:82
LOG_FLAGS
Formatting flags for log file output.
Definition logfile.h:44
LOG_ROTATE_MODE
Log rotation mode.
Definition logfile.h:57
void logfileMsgFunc(int level, LogCategory *cat, int64 timestamp, strref msg, uint32 batchid, void *userdata)
LogFileData * logfileCreate(VFS *vfs, strref filename, LogFileConfig *config)
LOG_DATE_FORMATS
Timestamp format options for log file output.
Definition logfile.h:35
@ LOG_BracketCategory
Enclose category in brackets [Network].
Definition logfile.h:51
@ LOG_OmitLevel
Do not include severity level.
Definition logfile.h:46
@ LOG_BracketLevel
Enclose log level in brackets [INFO].
Definition logfile.h:48
@ LOG_IncludeCategory
Include category name in output.
Definition logfile.h:50
@ LOG_AddColon
Add colon after the prefix.
Definition logfile.h:52
@ LOG_JustifyLevel
Make level a fixed-width column.
Definition logfile.h:49
@ LOG_CategoryFirst
Category between date and level instead of at end.
Definition logfile.h:53
@ LOG_ShortLevel
Use single-character level abbreviations.
Definition logfile.h:47
@ LOG_LocalTime
Use local time instead of UTC.
Definition logfile.h:45
@ LOG_RotateTime
Rotate at specified time of day.
Definition logfile.h:59
@ LOG_RotateSize
Rotate when file exceeds rotateSize bytes.
Definition logfile.h:58
@ LOG_DateISO
ISO 8601 format: "2026-01-02 15:04:05".
Definition logfile.h:36
@ LOG_DateSyslog
Syslog format: "Jan 2 15:04:05".
Definition logfile.h:39
@ LOG_DateISOCompact
Compact ISO: "20260102 150405".
Definition logfile.h:37
@ LOG_DateISOCompactMsec
Compact ISO with milliseconds: "20260102 150405.123".
Definition logfile.h:40
@ LOG_DateNCSA
NCSA Common Log format: "02/Jan/2026:15:04:05 +0000".
Definition logfile.h:38
Core logging system API.
uint8 rotateHour
Hour for LOG_RotateTime mode (0-23)
Definition logfile.h:73
int64 rotateKeepTime
Minimum time to keep rotated files (0 = no time limit)
Definition logfile.h:78
uint32 flags
Bitwise OR of LOG_FLAGS values.
Definition logfile.h:70
int rotateMode
Rotation mode from LOG_ROTATE_MODE enum.
Definition logfile.h:67
int rotateKeepFiles
Minimum number of rotated files to keep (0 = unlimited)
Definition logfile.h:77
uint8 rotateMinute
Minute for LOG_RotateTime mode (0-59)
Definition logfile.h:74
int64 rotateSize
Size threshold for LOG_RotateSize mode (bytes)
Definition logfile.h:72
uint8 rotateSecond
Second for LOG_RotateTime mode (0-59)
Definition logfile.h:75
int dateFormat
Date format from LOG_DATE_FORMATS enum.
Definition logfile.h:66
int spacing
Number of spaces between prefix and message (default: 2)
Definition logfile.h:68
VFS Object.
Definition vfsobj.h:25
Virtual Filesystem (VFS)