Адаптер QConsole-Log4j2
This commit is contained in:
@@ -1,16 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Configuration>
|
<Configuration packages="lwjake2.logger.log4j2">
|
||||||
<Appenders>
|
<Appenders>
|
||||||
<Console name="Console" target="SYSTEM_OUT">
|
<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>
|
</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"/>
|
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] (%t) \{%logger{36}\} %msg%n"/>
|
||||||
</File>
|
</File>
|
||||||
</Appenders>
|
</Appenders>
|
||||||
<Loggers>
|
<Loggers>
|
||||||
<Root level="all">
|
<Root level="all">
|
||||||
<AppenderRef ref="Console"/>
|
<AppenderRef ref="Console"/>
|
||||||
|
<AppenderRef ref="QConsole"/>
|
||||||
<AppenderRef ref="File"/>
|
<AppenderRef ref="File"/>
|
||||||
</Root>
|
</Root>
|
||||||
</Loggers>
|
</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