java - 如何在 Hive JDBC 中禁用详细日志记录

标签 java jdbc hadoop hive

有人知道如何禁用日志记录或降低 Hive JDBC 驱动程序的冗长程度吗?

我正在使用 hive-jdbc-0.8.1.jar 并且我也在远程调试,因此,当查询一个巨大的数据集时,控制台消息的日志记录需要永远。

我试图将我的 log4java 属性设置为仅错误级别:

   Properties log4jProperties = new Properties();
   log4jProperties.setProperty("log4j.rootLogger", "DEBUG, myConsoleAppender");
   log4jProperties.setProperty("log4j.appender.myConsoleAppender", "org.apache.log4j.ConsoleAppender");
   log4jProperties.setProperty("log4j.appender.myConsoleAppender.layout", "org.apache.log4j.PatternLayout");
   log4jProperties.setProperty("log4j.appender.myConsoleAppender.layout.ConversionPattern", "%-5p %c %x - %m%n");
   PropertyConfigurator.configure(log4jProperties);
   log.setLevel(Level.ERROR);

但是hive jdbc好像忽略了这些设置。

这家伙在这 link建议进行一些修改,但他使用 Jython,所以我不知道如何复制他正在做的事情……有什么线索吗?

谢谢!

最佳答案

做什么Dilip Joseph did in the link您提到过,这是您将在 Java 中执行的操作:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class Jdbc {

    public static void main(String[] args) {

        Logger rootLogger = Logger.getRootLogger();
        rootLogger.setLevel(Level.ERROR);

        // the rest of your code below ...
    }
}

如果您将其设置为 Maven 项目,请确保 include log4j as a dependency :

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

关于java - 如何在 Hive JDBC 中禁用详细日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622229/

相关文章:

java - Spark下载页面上预构建的hadoop和用户提供的hadoop有什么区别?

java - 无法连接到 Google API 客户端?

oracle - sqoop-连接到oracle并将数据导入IBM BigInsights中的HDFS

java - 为多个版本的 Hadoop 编写 Java 代码的好方法是什么?

hadoop - 数据格式和数据库选择 Spark/hadoop

java - 未知 "NumberFormatting"问题

java - Lombok 内部集合初始化

GWT 的 Spring Security JDBC 驱动程序 "no suitable driver"错误

java - 从 jTextField 到表 sql 的查询插入错误

windows - 无法从 IE 中找到凭据导致 HDFS WebUI Kerberos 身份验证失败