Я сделал что-то подобное в Python. В основном Вам нужно много демонстрационных данных из различной кодировки, которая сломана скользящим двухбайтовым окном и сохранена в словаре (хеш), включил пар байта, обеспечивающих значения списков кодировки.
, Учитывая, что словарь (хеш), Вы берете свой входной текст и:
, Если Вы также выбрали UTF, закодировал тексты, которые делают не , запускаются с любого BOM, второй шаг покроет тех, которые ускользнули от первого шага.
До сих пор, это работает на меня (демонстрационные данные, и последующие входные данные являются подзаголовками на различных языках) с уменьшением коэффициентов ошибок.
Что вам нужно сделать, так это иметь одно определение
с определенным уровнем INFO, но в ваших двух определениях приложений вы устанавливаете их пороговые значения соответственно, например
<appender name="ERROR_FILE">
<param name="Threshold" value="ERROR"/>
</appender>
<appender name="GENERAL">
<param name="Threshold" value="INFO"/>
</appender>
Затем вы добавляете оба добавителя в свой регистратор:
<logger name="com.acme">
<level value="INFO"/>
<appender-ref ref="ERROR_FILE"/>
<appender-ref ref="GENERAL"/>
</logger>
Записи журнала, которые теперь поступают в регистратор, будут отправлены обоим добавителям, но поскольку они имеют разные независимые пороговые значения, приложение ERROR_FILE будет регистрировать только ERROR и выше.