On 1/25/2016 9:46 AM, Stian Thorgersen wrote:
How does it look like from a usage perspective then?
private static final KeycloakLogger logger = Logger.getMessageLogger(KeycloakLogger.class, MyClass.class.getName());
.....
logger.CONFIG.localizedMessage("My localized message"); // logged to "keycloak-config" category
.....
logger.debug("My debug message");  // logged to "org.keycloak.mypackage.MyClass" category

On 25 January 2016 at 15:34, Stan Silvert <ssilvert@redhat.com> wrote:
Actually, the solution was even simpler than that.  I guess I just needed the weekend to clear my head.


On 1/25/2016 7:16 AM, Stian Thorgersen wrote:
We should not require having two logger fields in a class. Instead we should create a wrapper logger that gives access to the class logger for debug, but also the special loggers for other log output. For example:

  final KeycloakLogger logger = KeycloakLogger.getLogger(MyClass.class);

  logger.debug("Hello world!");
  logger.config().serverConfigNotFound();
  logger.realm().realmNameInUse(realmName);

On 22 January 2016 at 18:36, Stan Silvert <ssilvert@redhat.com> wrote:
 From yesterday's discussion, it was clear that as a group, we consider
debug/trace logging to be fundamentally different from other logging.
The loggers I've been concerned with will be logged through a limited
number of keycloak loggers using broad categories such as User, Realm,
Config, etc.

But for debug/trace logging, we want the category to be based upon the
class it was logged from.  That way, you can turn logging on for a
particular class, package, or sub-package to do your trace.

There is no good way to do both kinds of logging using the same logger
instance.  Therefore, I propose that debug/trace logging be done the
same way we've always done it.  Declare a debug/trace logger in your
class and use that.  Other logging will be done through the keycloak logger.

So, to do both kinds of logging in the same class, you declare two loggers:

private static final KeycloakLogger kcLogger = KeycloakLogger.ROOT_LOGGER;
private static final Logger debugLogger = Logger.getLogger(MyClass.class);
.....
kcLogger.CONFIG.localizedMessage("My localized message"); // logged to
"keycloak-config" category
.....
debugLogger.debug("My debug message");  // logged to
"org.keycloak.mypackage.MyClass" category

Comments?

_______________________________________________
keycloak-dev mailing list
keycloak-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/keycloak-dev