У меня довольно большая кодовая база.Во многих местах у меня есть фрагмент кода, подобный следующему:
for (MyObjectType myobj : myList) {
//...do something with myobj
}
MyObjectType является базовым объектом в моем приложении, и я часто повторяю многие из них.У меня настроен log4j, так что я записываю информацию об экземпляре MyObjectType, с которым я имею дело:
for (MyObjectType myobj : myList) {
MDC.put("myobj", myobj.identify());
...
logger.error("this message contains info about myobj")
}
Это действительно полезно.К сожалению, есть тонны для выглядит так, где я забыл использовать mdc.put ().Так что я подумал ... будет какой-то способ инструментального кода, чтобы:
- Я обнаружил, что есть цикл для коллекции MyObjectType
- Я вставляю это как первыйинструкция внутри цикла:
MDC.put("myobj",
myobj.identify());
Если есть способ (используя aop, инструментарий, какой-нибудь Java-агент?), насколько это будет сложно (может быть, это не стоит затраченных усилий).
Я никогда не использовал библиотеку байт-кодов Java, просто прыгнул легко.