Ich habe ein Problem, einen generischen Appender zu haben, der leicht die meisten meiner Paketlogger fangen sollte. Ich habe eine CDI-Anwendung mit dem Logger von meinem Produzenten injiziert, den Code ist der folgendeWildfly 8.2.0 Paket-Level-Protokollierung Kategorie
package com.mycompany.common.producers;
import java.util.logging.Logger;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
public class LoggerProducer {
@Produces
public Logger produceLogger(InjectionPoint injectionPoint){
return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
}
}
Das ganz in Ordnung ist, wenn ich meine Klassen definieren, wie
package com.mycompany.rest;
class RestService {
@Inject
private Logger log;
public void myLogTest(){
log.fine("My log line");
}
}
und alle Klassen, die ich alles definieren funktioniert wie erwartet ABER Ich habe ein Problem mit generischen Loggern. Nehmen wir an, ich habe zwei Klassen
com.mycompany.rest.RestService; com.mycompany.rest.SecondRestService
Wenn ich einen appender in Wildfly definieren, mit Code ähnlich
<logger category="com.mycompany.rest.RestService" use-parent-handlers="true">
<level name="FINE"/>
<handlers>
<handler name="MYCOMPANY"/>
</handlers>
</logger>
<logger category="com.mycompany.rest.SecondRestService" use-parent-handlers="true">
<level name="FINE"/>
<handlers>
<handler name="MYCOMPANY"/>
</handlers>
</logger>
alles funktioniert gut, aber ich würde gerne verstehen, wenn ich konfigurieren, dass diese
<logger category="com.mycompany.rest" use-parent-handlers="true">
<level name="FINE"/>
<handlers>
<handler name="MYCOMPANY"/>
</handlers>
</logger>
Es funktioniert überhaupt nicht. Mein Bedürfnis ist, einen Logger zu haben, der Paketniveau ist, bitte helfen Sie!