Есть класс Test
, потомок Thread
.
Как мне настроить log4j2
что бы для каждого потока Test
создавался свой лог файл.
Пытаюсь сделать так:
public class Test extends Thread {
private String name;
private Logger LOGGER;
public Test(String name) {
this.name=name;
}
@Override
public void run() {
System.setProperty("taskLogFolder", Global.getInstance().getLogRoot().toString());
System.setProperty("taskLogName", name);
LoggerContext loggerContext = Configurator.initialize(name, new File(Global.getInstance().getAppRoot()+WEB_INF_DIR+"taskLog4j2.xml").toString());
LOGGER = loggerContext.getLogger(name);
for(int i=0;i<100;i++) {
LOGGER.info(LOGGER.getName()+" "+i);
}
//LOGGER.info(LOGGER.getName());
}
}
Но при запуске выходит один файл.
new Test("task-8").start();
new Test("task-2").start();
new Test("task-3").start();
new Test("task-4").start();
new Test("task-5").start();
new Test("task-6").start();
new Test("task-7").start();
Раньше я пользовался log4j и там такое сделал, но как тут не пойму.
Что я делаю не так?
Файл taskLog4j2.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" monitorInterval = "30">
<Properties>
<Property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [thread-id %T] %l - %msg%n</Property>
</Properties>
<Appenders>
<RollingFile name="fileLogger" fileName="${sys:taskLogFolder}/${sys:taskLogName}.log" filePattern="${sys:taskLogFolder}/${sys:taskLogName}-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>${pattern}</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${pattern}" />
</Console>
</Appenders>
<Loggers>
<Root level="info" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="fileLogger" />
</Root>
<Logger name="com.test.*" level="info">
<appender-ref ref="fileLogger" level="info" />
</Logger>
</Loggers>
</Configuration>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь геокодировать адрес переменной adr в координаты с долготой и шириной и отобразить метку на картеЗапускаю приложение
Привет! Есть простой массив Object[] arr = new int[50] заполненный некими значениями, также есть другой массив Object[][][][][] fiveDArr, правда он 5-ти мерный, нужно...
Чем отличается List от ArrayListПогуглил, но толком ничего не нашел (как минимум, на русском языке)
Подскажите пожалуйста как можно сделать что б в datetime-local всегда выдавался 24 часовой пояс либо как можно его заменить либо хотя бы изменить...