diff options
author | Péter Dimitrov <[email protected]> | 2018-06-18 17:17:22 +0200 |
---|---|---|
committer | Péter Dimitrov <[email protected]> | 2018-07-02 12:38:36 +0200 |
commit | 13ae4276e81853a1d66aeaeaa392230037cf3a04 (patch) | |
tree | 5f624ae92eb44475a006a917a4eb1dc991dde965 /lib/ssl/src/ssl_logger.erl | |
parent | 41a71f54b2da01bc532d0c2d16c691e6622817ca (diff) | |
download | otp-13ae4276e81853a1d66aeaeaa392230037cf3a04.tar.gz otp-13ae4276e81853a1d66aeaeaa392230037cf3a04.tar.bz2 otp-13ae4276e81853a1d66aeaeaa392230037cf3a04.zip |
ssl: Add support for stateful logging
- Introduce stateful logging levels to the ssl application:
The SSL option 'log_alert' sets log level to notice/warning
if it is set to true/false. Default log level is notice.
- Add new SSL option 'log_level' that overrides the value of
'log_alert'. Default value is notice.
- 'log_level' debug triggers verbose logging of TLS protocol
messages and logging of ignored alerts in DTLS.
Change-Id: I28d3f4029a5d504ec612abe4b9ae0b7d9b115197
Diffstat (limited to 'lib/ssl/src/ssl_logger.erl')
-rw-r--r-- | lib/ssl/src/ssl_logger.erl | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl_logger.erl b/lib/ssl/src/ssl_logger.erl index 20e38c4882..23e9e096cc 100644 --- a/lib/ssl/src/ssl_logger.erl +++ b/lib/ssl/src/ssl_logger.erl @@ -20,7 +20,9 @@ -module(ssl_logger). --export([format/2]). +-export([debug/3, + format/2, + notice/2]). -define(DEC2HEX(X), if ((X) >= 0) andalso ((X) =< 9) -> (X) + $0; @@ -32,6 +34,7 @@ -include("tls_record.hrl"). -include("ssl_internal.hrl"). -include("tls_handshake.hrl"). +-include_lib("kernel/include/logger.hrl"). %%------------------------------------------------------------------------- %% External API @@ -52,6 +55,29 @@ format(#{level:= _Level, msg:= {report, Msg}, meta:= _Meta}, _Config0) -> [] end. +%% Stateful logging +debug(Level, Report, Meta) -> + case logger:compare_levels(Level, debug) of + lt -> + ?LOG_DEBUG(Report, Meta); + eq -> + ?LOG_DEBUG(Report, Meta); + _ -> + ok + end. + +%% Stateful logging +notice(Level, Report) -> + case logger:compare_levels(Level, notice) of + lt -> + ?LOG_NOTICE(Report); + eq -> + ?LOG_NOTICE(Report); + _ -> + ok + end. + + %%------------------------------------------------------------------------- %% Handshake Protocol %%------------------------------------------------------------------------- |