Адаптер QConsole-Log4j2
This commit is contained in:
@@ -1,16 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration>
|
||||
<Configuration packages="lwjake2.logger.log4j2">
|
||||
<Appenders>
|
||||
<Console name="Console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] (%t) \{%logger{36}\} %msg%n"/>
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] (%t) \{%20.20c\} %msg%n"/>
|
||||
</Console>
|
||||
<File name="File" fileName="qconsole.log" append="true">
|
||||
<QConsole name="QConsole">
|
||||
<PatternLayout pattern="%msg"/>
|
||||
</QConsole>
|
||||
<File name="File" fileName="qconsole.log" append="false">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] (%t) \{%logger{36}\} %msg%n"/>
|
||||
</File>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Root level="all">
|
||||
<AppenderRef ref="Console"/>
|
||||
<AppenderRef ref="QConsole"/>
|
||||
<AppenderRef ref="File"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
|
||||
47
src/lwjake2/logger/log4j2/QConsoleAppender.java
Normal file
47
src/lwjake2/logger/log4j2/QConsoleAppender.java
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2017-05-12
|
||||
*/
|
||||
package lwjake2.logger.log4j2;
|
||||
|
||||
import lwjake2.client.Console;
|
||||
import org.apache.logging.log4j.core.Filter;
|
||||
import org.apache.logging.log4j.core.Layout;
|
||||
import org.apache.logging.log4j.core.LogEvent;
|
||||
import org.apache.logging.log4j.core.appender.AbstractAppender;
|
||||
import org.apache.logging.log4j.core.config.plugins.Plugin;
|
||||
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
|
||||
import org.apache.logging.log4j.core.config.plugins.PluginElement;
|
||||
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
|
||||
import org.apache.logging.log4j.core.layout.PatternLayout;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Plugin(name = "QConsole", category = "Core", elementType = "appender", printObject = true)
|
||||
public class QConsoleAppender extends AbstractAppender {
|
||||
@PluginFactory
|
||||
public static QConsoleAppender createAppender (
|
||||
@PluginAttribute("name") String name,
|
||||
@PluginElement("Layout") Layout<? extends Serializable> layout,
|
||||
@PluginElement("Filter") final Filter filter
|
||||
) {
|
||||
if (name == null) {
|
||||
LOGGER.error("No name provided for QConsoleAppender");
|
||||
return null;
|
||||
}
|
||||
if (layout == null) {
|
||||
layout = PatternLayout.createDefaultLayout();
|
||||
}
|
||||
return new QConsoleAppender(name, filter, layout, true);
|
||||
}
|
||||
|
||||
protected QConsoleAppender(String name, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
|
||||
super(name, filter, layout, ignoreExceptions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void append(LogEvent event) {
|
||||
String msg = new String(getLayout().toByteArray(event));
|
||||
Console.Print(msg+"\n");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user