Попытка расширить логику логирования в моем проекте Kotlin.Добавлен конвертер для логов:
@Plugin(name = "TestConverter", category = "Converter")
@ConverterKeys("m")
class TestConverter(name: String, style: String) : LogEventPatternConverter(name, style) {
companion object {
@JvmStatic
fun newInstance(options: Array<String>): TestConverter = TestConverter("test", Thread.currentThread().name)
}
override fun format(event: LogEvent?, toAppendTo: StringBuilder?) {
...
}
}
Но похоже, что log4j не видит класс Kotlin с аннотацией @Plugin.Я попытался добавить пакеты в конфигурации явно, но не помогло.Проблема также может быть связана с обработкой аннотаций для Kotlin, но я не совсем уверен, что это связано.
Тот же класс в Java работает отлично.
Любые идеи / предложенияидет не так?
Спасибо!
UPD добавление log4j.xml
log4j.xml вполне стандартно
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${env:CONSOLE_LOG_PATTERN:-%d %p %c [%t] %X %m%n}"/>
</Console>
</Appenders>
<Loggers>
<Logger name="test" level="info" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Я пытался указать пакет длясканирование <Configuration packages="com.test">
но это не помогло.А также, как я уже говорил, класс Java с той же конфигурацией работает отлично.