我有一段代码:

logger.error("Unauthorized error: {} with request {} from {} ",
        authException.getMessage(),
        request.getServletPath(),
        getClientIp(request));

以及:

  private static String getClientIp(HttpServletRequest request) {

        String remoteAddr = "";

        if (request != null) {
            remoteAddr = request.getHeader("X-FORWARDED-FOR");
            if (remoteAddr == null || "".equals(remoteAddr)) {
                remoteAddr = request.getRemoteAddr();
            }
        }

        return remoteAddr;
    }

我有这样的警告:

 Invoke method(s) only conditionally

推荐答案

你可以在登录前判断isErrorEnabled.

if (logger.isErrorEnabled())
    logger.error("Unauthorized error: {} with request {} from {} ",
        authException.getMessage(),
        request.getServletPath(),
        getClientIp(request));

Java相关问答推荐

为什么JFrame paint()多次绘制同一点(或根本不绘制)?

无法在Java中将hhmmss格式的时间解析为LocalTime

Annotation @ Memphier无法正常工作,并表示:class需要一个bean,但找到了2个bean:

Jooq外键关系

对于几乎不涉及逻辑的请求,您是否应该使用命令模式?

在bash中将数组作为Java程序的参数传递

AssertJ Java:多条件断言

Spring Boot Maven包

在Java中,在单个逻辑行中连接列表和单个元素的正确方法是什么?

解释左移在Java中的工作原理

测试何时使用Mockito强制转换对象会导致ClassCastException

如何在Microronaut中将 map 读取为 map

从ActiveMQ Classic迁移到ActiveMQ Artemis需要进行哪些客户端更改?

基于接口的投影、原生查询和枚举

如何在JavaFX中制作鼠标透明stage

Instancio未在日志(log)中显示测试失败消息

当构造函数创建一个新实例时,Java为什么需要&new";

深度优先搜索实现:算法只向右搜索

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

如何在右击时 Select 新行?