aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/logger_h_common.erl
AgeCommit message (Collapse)Author
2019-03-08Merge branch 'siri/logger/file-logging-improvements' into maintSiri Hansen
* siri/logger/file-logging-improvements: [logger] Add option file_check to logger_std_h [logger] Add log file rotation by options to logger_std_h [logger] Add better control of file modes in logger_std_h [logger] Refactor logger_std_h [logger] Make sure log file is re-opened with configured file options
2019-03-08[logger] Add log file rotation by options to logger_std_hSiri Hansen
OTP-15479 OTP-15662 New configuration map for logger_std_h: #{type => file, file => file:filename(), modes => [file:mode()], max_no_bytes => pos_integer() | infinity, max_no_files => non_neg_integer(), compress_on_rotate => boolean()} For backwards compatibility, the old variant for specifying the file name via the 'type' parameter is still supported, i.e. {file,FileName} and {file,FileName,Modes}, but it is no longer documented. Rotation scheme: The current log file always has the same name, and the archived files get extensions ".0", ".1", ... The newest archive has extension ".0", and the oldest archive has the highest number. If 'compress_on_rotate' is set to true, the archived files are gzipped and get the additional extension ".gz", e.g. error.log.0.gz. Rotation is turned off by setting 'max_no_bytes' to infinity. Setting 'max_no_files' to 0 does not turn off rotation, but only specifies that no archives are to be saved.
2019-02-22[logger] Change timestamp from erlang:system_time to os:system_timeSiri Hansen
This is to align the timestamps with external logs.
2019-01-16[logger] Remove info and reset functions from handler modulesSiri Hansen
These are not documented, and only used in test. The test now uses logger_olp directly instead.
2019-01-16[logger] Move out overload protection macros from logger_h_common.hrlSiri Hansen
The new file logger_olp.hrl is added.
2019-01-16[logger] Overload protect logging from erts and remote nodesSiri Hansen
2019-01-16[logger] Split overload protection functionality to own moduleSiri Hansen
2018-10-19[logger] Add statistics counter for drops due to message burstsSiri Hansen
2018-10-19[logger] Further refactor built-in handlersSiri Hansen
2018-10-19[logger] Move common handler code to logger_h_commonSiri Hansen
There was a lot of duplicated code in logger_std_h and logger_disk_log_h. Most of this is now moved to logger_h_common, which now also serves as the gen_server callback.
2018-10-03[logger] Add handler callback filter_config/1Siri Hansen
This function is called when a logger API function for fetching handler configuration is called. The point is to allow the handler to remove internal data fields that it might have stored in the configuration database, before returning the handler configuration to the caller. An example of such internal data are the 'handler_pid' and 'mode_tab' fields that logger_std_h and logger_disk_log_h store in their configuration maps.
2018-09-14[logger] Read config before terminating handler processSiri Hansen
When a handler process is terminated due to overload, it reads its configuration from the configuration database, so it can be restarted with the same configuration after a small delay. This was earlier done in a different process, which was spawned off from the terminate function. This caused a race condition, where in some cases, the configuration was already removed before it could be read. The reason for spawning off a process, is to avoid a deadlock due to the call to logger:remove_handler/1. This commit moves the call to logger:get_handler_config/1 back to the handler process - to ensure that the data is still there, but keeps the call to logger:remove_handler/1 in the spawned off process - to avoid deadlock.
2018-09-12[logger] Remove encoding option from logger_formatterSiri Hansen
The encoding option was introduced in commit 270d909696a753af022df72a404c73f2895b4a02, to allow report callbacks to format according to a given encoding. There was, however, no connection between this encoding option, and the encoding of the device to which the logger handler was writing. Since a formatter is defined to return unicode:chardata(), and in order to avoid mismatch with the encoding of the device, the encoding option is now removed from the formatter. The handler itself must make sure that it does not write illegal data to its device.
2018-07-13[kernel] Reduce risk of dead lock when terminating logger_supSiri Hansen
2018-06-18Update copyright yearHenrik Nord
2018-06-13[logger] Change overload_kill_restart_after value to infinityPeter Andersson
2018-06-13[logger] Change name of function sync/1 to filesync/1Peter Andersson
2018-06-11[logger] Split config() in two: primary_config() and handler_config()Siri Hansen
2018-06-11[logger] Change names of overload config parameters in build-in handlersPeter Andersson
2018-06-11[logger] Implement logging of handler overload statusPeter Andersson
Conflicts: lib/kernel/src/logger_disk_log_h.erl lib/kernel/src/logger_std_h.erl
2018-06-08[logger] Update return values from get_handler_config/0,1 and get_config/0Siri Hansen
Module and Id are now always included as fields in Config, so these are no longer returned as separate elements.
2018-06-08[logger] Change registered name of built-in handlers and use TID for mode tablePeter Andersson
2018-05-23Change type name logger:log() to logger:log_event()Siri Hansen
2018-05-23Set legacy_header=true for kernel's default handler onlySiri Hansen
2018-05-03Make it possible to disable sync and drop modePeter Andersson
Also add tests and update failing test cases
2018-04-26Add documentation of the built-in logger handlersPeter Andersson
2018-04-26Add loggerSiri Hansen