summaryrefslogtreecommitdiff
path: root/lib/kernel/src/disk_log.hrl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/src/disk_log.hrl')
-rw-r--r--lib/kernel/src/disk_log.hrl25
1 files changed, 19 insertions, 6 deletions
diff --git a/lib/kernel/src/disk_log.hrl b/lib/kernel/src/disk_log.hrl
index 6cb2c13f02..41844c03d2 100644
--- a/lib/kernel/src/disk_log.hrl
+++ b/lib/kernel/src/disk_log.hrl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1997-2021. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2023. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -56,7 +56,8 @@
%%------------------------------------------------------------------------
-type dlog_format() :: 'external' | 'internal'.
--type dlog_format_type() :: 'halt_ext' | 'halt_int' | 'wrap_ext' | 'wrap_int'.
+-type dlog_format_type() :: 'halt_ext' | 'halt_int' | 'wrap_ext' | 'wrap_int'
+ | 'rotate_ext'.
-type dlog_head() :: 'none' | {'ok', binary()} | mfa().
-type dlog_head_opt() :: none | term() | iodata().
-type log() :: term(). % XXX: refine
@@ -83,7 +84,7 @@
| {MaxNoBytes :: pos_integer(),
MaxNoFiles :: pos_integer()}.
-type dlog_status() :: 'ok' | {'blocked', 'false' | [_]}. %QueueLogRecords
--type dlog_type() :: 'halt' | 'wrap'.
+-type dlog_type() :: 'halt' | 'wrap' | 'rotate'.
%%------------------------------------------------------------------------
%% Records
@@ -129,7 +130,7 @@
%% time the wrap log has filled the
%% Dir/Name.NewMaxF file.
curB :: non_neg_integer(), %% Number of bytes on current file.
- curF :: integer(), %% Current file number.
+ curF :: integer(), %% Current file number
cur_fdc :: #cache{}, %% Current file descriptor.
cur_name :: file:filename(), %% Current file name for error reports.
cur_cnt :: non_neg_integer(), %% Number of items on current file,
@@ -146,6 +147,18 @@
%% overflows since the log was opened.
).
+-record(rotate_handle,
+ {file :: file:filename(),
+ cur_fdc :: #cache{},
+ inode,
+ file_check,
+ maxB :: pos_integer(),
+ maxF :: pos_integer() | {pos_integer(),pos_integer()},
+ curB = 0 :: non_neg_integer(),
+ firstPos :: non_neg_integer(),
+ compress_on_rotate = true}
+ ).
+
-record(log,
{status = ok :: dlog_status(),
name :: dlog_name(), %% the key leading to this structure
@@ -160,8 +173,8 @@
%% called when wraplog wraps
mode :: dlog_mode(),
size, %% value of open/1 option 'size' (never changed)
- extra :: #halt{} | #handle{}, %% type of the log
- version :: integer()} %% if wrap log file
+ extra :: #halt{} | #handle{} | #rotate_handle{}, %% type of the log
+ version :: integer() | undefined} %% if wrap log file, undefined for halt and rotate
).
-record(continuation, %% Chunk continuation.