That would I think also take care of some "technical debt" which
is on the to-do list since I want to remove all unnecessary usage
of java.base internals.

-phil.

On 7/14/20, 8:39 AM, Daniel Fuchs wrote:
Hi Christoph,

Sorry - I'm not on 2d-dev - so please include me in cc: if you
reply to this mail. Also my apologies if I don't have the full
context of this discussion.

> Unfortunately, PlatformLogger does not (yet?) offer public logging
> methods taking suppliers.

I would suggest using System.Logger directly instead.
PlatformLogger delegates to System.Logger behind the scene,
and System.Logger has APIs that take suppliers:

https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/lang/System.Logger.html

best regards

-- daniel

On 14/07/2020 16:03, Roger Riggs wrote:
-------- Forwarded Message --------
Subject: Re: [OpenJDK 2D-Dev] RFR : 8248802: Add log helper methods to FontUtilities.java
Date:     Tue, 14 Jul 2020 14:22:50 +0000
From:     Langer, Christoph <christoph.lan...@sap.com>
To: Philip Race <philip.r...@oracle.com>, Baesken, Matthias <matthias.baes...@sap.com> CC: Peter Hull <peterhul...@gmail.com>, Jayathirth D v <jayathirth....@oracle.com>, 2d-dev@openjdk.java.net <2d-dev@openjdk.java.net>



Hi,

I guess it would make sense to offer logging methods that take a supplier as input. That way we could pass String concatenations as Lambdas that only evaluate when actually calling the logging.

Unfortunately, PlatformLogger does not (yet?) offer public logging methods taking suppliers. Those should, however, be easy to implement, leveraging already existing signatures of the logging Bridge such as here: https://github.com/openjdk/jdk/blob/195c45a0e11207e15c277e7671b2a82b8077c5fb/src/java.base/share/classes/sun/util/logging/PlatformLogger.java#L210

Furthermore, initialization of logging in FontUtilities looks a bit awkward. I think the if (debugFonts) in line 117 is unnecessary and the code of that block could be added to the block before (of line 107: if (debugLevel != null && !debugLevel.equals("false"))). And you could also remove the following imports there (line 29ff):

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

Best regards

Christoph


Reply via email to