没有登录 confluence web 应用程序

No logging in confluence web application

我正在尝试在 Confluence 中为以下 class 启用日志记录:

https://bitbucket.org/mryall/confluence-siteminder-authenticator/src/142de32b6be86321c9791df5dfced607314ed17d/src/main/java/com/atlassian/confluence/authenticator/siteminder/SiteMinderAuthenticator.java?at=default&fileviewer=file-view-default&_ga=2.161258619.735769127.1516003521-2111736425.1515526840

例如我知道这一行:

@SuppressWarnings("unchecked")
public Principal getUser(final HttpServletRequest request, HttpServletResponse response) {
    log.info("Starting SiteMinder Authentication for: {}", request.getRequestURI());
    Principal loggedInUser = getUserFromSession(request);
    if (loggedInUser != null) {
        log.debug("{} is already logged in.", loggedInUser.getName());
        return loggedInUser;
    }

已执行,但未向 catalina.out 写入任何内容。在 log4j.properties 我有:

log4j.rootLogger=DEBUG, confluencelog, errorlog
log4j.appender.confluencelog=com.atlassian.confluence.loggin‌​g.ConfluenceHomeLogA‌​ppender 

为什么没有从上面 class 打印到 catalina.out 的任何想法?

您的 rootLogger 级别为 WARN。它不会打印较低级别的日志,如 INFO、DEBUG

您可以将其设置为覆盖INFO级别的DEBUG。

log4j.rootLogger=DEBUG, confluencelog, errorlog

但是包括这两个会打印很多。

>log.info("Starting SiteMinder Authentication for: {}", request.getRequestURI());,

>log.debug("{} is already logged in.", loggedInUser.getName());

The best solution是设置包日志级别为DEBUG。您可以在 log4j.properties

中添加一行
log4j.logger.com.atlassian.confluence.authenticator.siteminder=DEBUG, confluencelog

Confluence manual 说:

In order to unify logging across different application servers, Confluence uses the atlassian-confluence.log as its primary log, not the application server log.

Once the initial startup sequence is complete, all logging will be to <confluence-home>/logs/atlassian-confluence.log. For example: c:/confluence/data/logs/atlassian-confluence.log.

所以从该文件中查找您的条目,而不是 catalina.out。