Томкат не поддерживает всё из JavaEE, это лишь контейнер сервлетов, а не полноценный ApplicationServer. Так что либо используй TomcatEE, либо другие сервера (я рекомендую WildFly).
Про запись лога в БД можно почитать
тут.
Ещё можно использовать interceptors (перехватчики). Это часть JavaEE, перехватывать можно методы бинов. Подробнее
тут и в гугле.
В томкате нет БД, там вообще всё по минимуму. Чтобы подключить БД надо самому добавлять jar-файлы с реализацией JPA, самому настраивать базу в приложении. При этом, JTA и другие штуки будет сложно подключить и настроить, потому что томкат не ApplictionServer. Лучше взять WildFly. Там уже есть один DataSource по-умолчанию (БД в оперативной памяти, очищается после перезапуска сервака), и легко подключить новый источник к самому веб-серверу.