Я прочитал несколько вопросов здесь относительно Tomcat и ведение журнала, но я до сих пор действительно не понимаю «больше картины», следовательно, на мой вопрос:Tomcat: recommandations для протоколирования
Как и где моя Webapps должна делать их регистрации?
По умолчанию на моей установке Tomcat 6.0.20 журналы идут в следующем файле/Appender:
./apache-tomcat-6.0.20/logs/catalina.out
Могу ли я предположить, чтобы мои webapps также регистрировались в этом файле/appender?
Пусть говорят мой случай тривиально проста, и у меня только один сервлет:
import ... // What do I import here in order to be able to log?
public class SOServlet extends HttpServlet {
public void doGet(
final HttpServletRequest request,
final HttpServletResponse response
) throws IOException, ServletException {
... // I want to log here, what do I write?
Какие подводные камни, зная, что есть более чем один веб-приложение работает на том же сервере Tomcat? (по-видимому, из чтения различных вопросов есть много gotchas).
Как насчет .war, мне нужно поместить log4j/sl4f/commons-logging/whatever в мой .war?
Например, я читал, что, и я путь более запутанным, чем раньше:
http://tomcat.apache.org/tomcat-6.0-doc/logging.html
@BalusC: +1 но ... Все эти ссылки ** страшные **. Все они указывают на документ и примеры, полные слов типа «он, по-видимому, работает», «лучший подход может быть ...» и т. Д.Я пробовал * getServletContext() *, но не смог заставить его работать. Я поражен уровнем сложности, связанным с чем-то, что, по моему мнению, было бы тривиальным. – SyntaxT3rr0r
Ну, это всего лишь вопрос вкуса и «хорошей практики». Никто не запрещает вам использовать 'ServletContext # log()', но обычной практикой является то, что вы не используете его для серьезной работы по регистрации. Wrt 'getServletContext()' part: он должен быть доступен, если ваш сервлет расширяет хотя бы «GenericServlet» ('HttpServlet' делает). Внутри вашего метода 'doGet()' вы должны иметь возможность просто 'getServletContext(). Log (" message ");'. – BalusC
@BalusC: gotcha, как быстрый «взлом». Я использую метод getServletContext(), который отлично подходит для моего 23 KB .war;) Я рассмотрю более понятные подходы и commons-logging/juli/log4j позже :) – SyntaxT3rr0r