Recently I found, that some log4j-like functionality in my client's code 
could be handy. So with the GWT logging module I can pretty much have a 
shared logging code, which is very convenient to use on both sides. The 
tutorial is here http://www.gwtproject.org/doc/latest/DevGuideLogging.html 
. However, I instantly ran into multiple questions:

1) How many loggers *(Logger.getLogger("logger-name")) *should I typically 
get away with in an average size project? What will their hierarcy and 
naming convention *("" -> "Parent-name" -> "Parent-name.Child-name") *be? And 
therefore which one should be the most common across the code for debugging 
and user's feedback during troubleshooting *(is it some 
"parent.child.grandson...Adam"?)* // *see 2)*

2) I'm developing my projects with GIN, and since a call like 
*Logger.getLogger("logger-name")* has a string constant *"logger-name"*, 
then any logger should definitely become a subject of injection (in my 
opinion). Hence, I created providers - one per *"logger-name"* - and bound 
*Logger.class* to them with an annotation, just like this:
bind(Logger.class).annotatedWith(DefaultLogger.class).toProvider(
DefaultLoggerProvider.class).in(Singleton.class);
Clients of this logger are all sorts of views, presenters and UI 
components. They usually obtain an instance by field or constructor 
injection:
@Inject @DefaultLogger private java.util.logging.Logger logger;
I would like to know the *pros and cons* of this solution from your point 
of view. Again, any best practices are very much welcome.

3) Consider e.g. an app designed within *Activities&Places* framework. It's 
not uncommon to have some supporting logging in activities in order to 
assure the correctness of your MVP under development. Therefore methods 
such as
com.google.gwt.activity.shared.Activity::start(AcceptsOneWidget panel, 
EventBus eventBus);
might have logging lines for *entering* and *exiting*. However 
Logger::entering(String sourceClass, String sourceMethod)
and its counterpart *exiting* methods aren't supported in client. Moreover, 
a more generic method for this purpse
logp(Level level, String sourceClass, String sourceMethod, String msg)
is undefined for the type *Logger* too. Any *pretty* solution?

There might be more interesting issues concerning *java.util.logging.Logger* 
you ran into during the development of your projects. So, please feel free 
to mention them in this discussion as well, as the practices you found 
handy correspondingly.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to