However, if code must depend on implementation is is a not good way - it is not robust, it is hard to update. Seems there is no chance to make a good universal logger per module/layer as we cannot get the Module/ModuleLayer of the class having only String className.
>Среда, 3 октября 2018, 1:37 +03:00 от fo...@univ-mlv.fr: > > > >---------------------------------------------------------------------- >>De: "Alex Sviridov" < ooo_satu...@mail.ru > >>À: "Remi Forax" < fo...@univ-mlv.fr >, "jigsaw-dev" < >>jigsaw-dev@openjdk.java.net > >>Envoyé: Mercredi 3 Octobre 2018 00:20:08 >>Objet: Re[2]: Separate logging for JPMS module/layer >>Thank you for you suggestion. But can this be used when some library >>uses one logging system and for another uses some bridge. Because of this >>bridging >>LoggerFactory.getLogger is called somewhere in bridge, as I understand, > >You can still skip over the method of the bridge, but usually it only works if >you know all the bridges that can happen because this code tend to be depend >on the implementation of each bridge, >practically, there is less than half a dozen of logging libraries used in >Java, so it's doable. > >The other solution is to ask every maintainers of the logging libraries to >implement the System.Logger API introduced in 9. > >Rémi >> >> >> >>>Среда, 3 октября 2018, 1:12 +03:00 от Remi Forax < fo...@univ-mlv.fr >: >>> >>>You can use the StackWalker >>>https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackWalker.html >>> >>>regards, >>>Rémi >>> >>>----- Mail original ----- >>>> De: "Alex Sviridov" < ooo_satu...@mail.ru > >>>> À: "jigsaw-dev" < jigsaw-dev@openjdk.java.net > >>>> Envoyé: Mardi 2 Octobre 2018 23:54:48 >>>> Objet: Separate logging for JPMS module/layer >>> >>>> Hi all, >>>> >>>> Could anyone say how the following problem can be solved. I want to create >>>> separate >>>> log file for every JPMS module/layer. The problem is that many >>>> libraries/programs >>>> use LoggerFactory.getLogger(String className) so in getLogger I have only >>>> the name of the class as String, so I can't get module and layer. >>>> >>>> If I had not String className, but Class klass then the problem would be >>>> easily >>>> solved. >>>> As I understand I can't load class by name because it would require all >>>> modules >>>> export >>>> their packages to logging framework that has no sense. >>>> >>>> Are there any solutions for such problem? >>>> >>>> >>>> -- >>>> Alex Sviridov >> >> >>-- >>Alex Sviridov -- Alex Sviridov