Как лучше всего выполнять поиск и замену Log4J, регистрируя файлы Java - PullRequest
2 голосов
/ 03 августа 2011

Я пытаюсь написать скрипт или программу на Java, чтобы найти и заменить все экземпляры и варианты Log4J на logback / SLF4J.

Вот несколько примеров моих регистраторов Log4J:

log.error(myName+ "Ctrl: Exception: caught in runBcpOrderInfoSearchState "+ e.getMessage());

Изменить на:

log.error("{}Ctrl: Exception: caught in runBcpOrderInfoSearchState {}", myName, e.getMessage());

Пожалуйста, поделитесь опытом, если у вас есть.

Ответы [ 3 ]

1 голос
/ 11 июля 2013

Я усовершенствовал мигратор slf4j, который преобразует сообщения журнала для параметризации: https://github.com/JamesStauffer/slf4j

1 голос
/ 03 августа 2011

Мне приходилось делать подобные вещи несколько раз раньше. Вы можете написать регулярные выражения, но, как правило, слишком сложно (слишком много угловых случаев) получить правильные значения.

Мой лучший совет - использовать систему макросов клавиатуры - я обычно запускаю Emacs - и становлюсь умнее. Найдите строку в кавычках, обрежьте ее, переместите туда, где начинается скобка, замените + на,. и т. д. Сделайте макрос, запустите его в следующем случае, при необходимости исправьте его. Это отличный способ сделать его немного менее утомительным, не теряясь в сложном кругу, делая что-то автоматизированное, что вы, вероятно, никогда не будете использовать снова.

0 голосов
/ 03 августа 2011

Используйте slf4j migrator .

...