On 6/6/2018 4:21 PM, Weijun Wang wrote:
On Jun 7, 2018, at 12:27 AM, Xuelei Fan <xuelei....@oracle.com> wrote:
On 6/6/2018 5:41 AM, Weijun Wang wrote:
There are lots of calls like
RSAClientKeyExchangeMessage ckem =
new RSAClientKeyExchangeMessage(shc, message);
if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
SSLLogger.fine(
"Consuming RSA ClientKeyExchange handshake message", ckem);
}
which finally calls to
String formatted =
SSLSimpleFormatter.formatParameters(params);
logger.log(level, msg, formatted);
Now that msg contains no placeholder likes "{0}", nothing on temporary will be
shown.
I did not catch you here. SSLSimpleFormatter is a package private class
(SSLLogger#SSLSimpleFormatter), which does not use placeholder in msg.
I see.
BTW, at the beginning of SSLLogger, there is
String p = GetPropertyAction.privilegedGetProperty("javax.net.debug");
if (p != null) {
if (p.isEmpty()) {
property = "";
logger = System.getLogger("javax.net.ssl");
} else {
Will this "p.isEmpty()" ever happen? I cannot find a place when only SSLLogger.isOn is
checked but not SSLLogger.isOn("something").
If p.isEmpty(), SSLLogger.isOn("something") always returns true. It
means that 'something" (ssl, handshake, etc) is not used to control the
debug level any more. Instead, the System.Logger levels (FINE, WARNING,
etc) get used instead.
Xuelei