-
15. Custom logger on AS 6
jaikiran Mar 24, 2011 3:18 AM (in response to jaikiran)Turns out, we already have a JIRA for that https://issues.jboss.org/browse/JBAS-8819
-
16. Re: Custom logger on AS 6
javapenguin Sep 8, 2011 7:42 AM (in response to nickarls)I used a custom appender with previous jboss which worked fine. The appender was added programmatically. In jboss 6 it stopped working. I debugged the code and the appender is added fine, but append() is never called like before. Still use log4j and the rest of the logging logs fine to the logg file even though the switch to jboss-logging.
My code is below:
The class:
class LocalAppender extends AppenderSkeleton {
LocalAppender() {
setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
setThreshold(Level.INFO);
}
@SuppressWarnings({"unchecked"})
protected void append(LoggingEvent event) {
String formattedEvent = getLayout().format(event);
synchronized(eventBuffer) {
eventBuffer.add(formattedEvent);
}
}
public boolean requiresLayout() {
return true;
}
public void close() {
}
}
Instantiate the class and added to the root appender:
LocalAppender appender = new LocalAppender();
Logger.getRootLogger().addAppender(appender);
-
17. Re: Custom logger on AS 6
javapenguin Sep 9, 2011 8:21 AM (in response to jaikiran)So you are telling me I should upgrade to JBoss 6.1.0?
-
18. Re: Custom logger on AS 6
rhusar Sep 9, 2011 8:50 AM (in response to javapenguin)So you are telling me I should upgrade to JBoss 6.1.0?
Its typically a good idea to update to the latest version, there is really not much to lose as 6.1 mostly brought component upgrades and fixes. See the complete list of changes here http://community.jboss.org/wiki/AS610FinalReleaseNotes.
-
19. Re: Custom logger on AS 6
javapenguin Sep 12, 2011 9:34 AM (in response to rhusar)Ok, i upgraded to JBOSS 6.1.0
Added a log4j appender like so:
<log4j-appender name="BUFFER_APPENDER" class="za.co.quinn.BufferAppender">
<error-manager>
<only-once/>
</error-manager>
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d %-5p [%c{1}] %m%n"/>
</formatter>
</log4j-appender>
<root-logger>
<!-- Set the root logger priority via a system property, with a default value. -->
<level name="${jboss.server.log.threshold:INFO}"/>
<handlers>
<handler-ref name="CONSOLE"/>
<handler-ref name="FILE"/>
<handler-ref name="BUFFER_APPENDER"/>
</handlers>
</root-logger>
Compiled and build a jar with my BufferAppender and added it to "jboss-6.1.0.Final/server/myinstance/lib"
Started and debugged the BufferAppender and it works fine.
GREAT PROBLEM SOLVED FOR JBOSS 6.0.0
Now I deploy my application and try to access the BufferAppender like so:
ArrayList<String> result = new ArrayList<String>();
Logger logger = Logger.getLogger("BUFFER_APPENDER");
Enumeration enumeration = logger.getAllAppenders();
while (enumeration.hasMoreElements()) {
Appender appender = (Appender) enumeration.nextElement();
if ("BufferAppender".equals(appender.getName())) {
BufferAppender bufferAppender = (BufferAppender) appender;
result.addAll(bufferAppender.getEventBuffer());
}
}
NO LUCK
The Logger (BUFFER_APPENDER) is valid, but it contains no appenders (logger.getAllAppenders().hasMoreElements() = false).
WHERE HAS MY BufferAppender GONE???
-
20. Re: Custom logger on AS 6
suikast42 Dec 19, 2011 3:34 PM (in response to javapenguin)The Logger (BUFFER_APPENDER) is valid, but it contains no appenders (logger.getAllAppenders().hasMoreElements() = false).
WHERE HAS MY BufferAppender GONE???
I can say where you Appender gone. If try use my Log4jAppender I see that I get a BirdgeAppender.
/**
* A log4j logger which bridges to a LogManager logger.
*/
public final class BridgeLogger extends org.apache.log4j.Logger {
private static final String FQCN = BridgeLogger.class.getName();
private final Logger logger;
public BridgeLogger(final Logger logger) {
super(logger.getName());
this.logger = logger;
}
public void addAppender(final Appender newAppender) {
// ignored
}
public void callAppenders(final LoggingEvent event) {
// ignored for now (TODO?)
}
...
public Appender getAppender(final String name) {
// ignored
return null;
}
...
public void setAdditivity(final boolean additive) {
// ignored
}
...
}
I start a thread about the same issue. http://community.jboss.org/message/642287#642287
So let's pool forces .
I hope someone solved it