【问题标题】:how to disable apache mina default logs如何禁用 apache mina 默认日志
【发布时间】:2014-01-27 14:34:13
【问题描述】:

我正在开发一个使用 apache mina 发送/接收消息的应用程序。 我在 colsole 上获取 apache mina 日志

12:01:29.796 [NioProcessor-2] 调试 o.a.m.core.filterchain.IoFilterEvent - 为会话 1 触发 SESSION_CREATED 事件 12:01:29.797 [NioProcessor-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - 会话 1 的事件 SESSION_CREATED 已被触发

如何禁用这些日志。

【问题讨论】:

    标签: logging apache-mina


    【解决方案1】:

    我最近不得不使用与 Spring 引导应用程序集成的 mina 来执行此操作。首先,您可以使用执行器端点找到有问题的记录器:

    GET /actuator/loggers
    

    检查相关记录器的输出 json,然后在 Spring Boot 应用程序 yaml 中调整级别:

    logging:
      level:
        org.apache.sshd.server.session.ServerSessionImpl: error
    

    在 Docker 环境中,这会使容器端口扫描器反复生成的“连接重置对等”WARN 日志行静音。

    【讨论】:

      【解决方案2】:

      使用 log4j(和 log4j 上的 slf4j):您可以禁用任何指定 java 包的任何日志。

      您可以在 log4j.properties 配置文件中更新日志配置:

      # log4j:如何在包级别控制日志记录 log4j.logger.org.apache.mina=LOG_LEVEL # 其中 LOG_LEVEL 将是您需要的级别:OFF、INFO、DEBUG、ERROR

      也许这些问题与以下问题重复: How do you Change a Package's Log Level using Log4j?

      【讨论】:

        【解决方案3】:

        您需要获取 Mina 记录器实例,然后禁用对其进行记录。以下应该工作

            Logger minaLogger = (Logger) LoggerFactory.getLogger("org.apache.mina");
            if(minaLogger!=null)
            {
                minaLogger.setLevel(Level.OFF);
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多