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

Ale*_*oVK 3 java hadoop hive jdbc

有人知道如何禁用日志记录或减少 Hive JDBC 驱动程序的详细程度吗?

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

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

   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);
Run Code Online (Sandbox Code Playgroud)

但是 hive jdbc 似乎忽略了这些设置。

链接上的这个人建议进行一些修改,但他使用 Jython,所以我不知道如何复制他正在做的事情......有任何线索吗?

谢谢。!

Ste*_*ook 6

要执行Dilip Joseph 在您提到的链接中所做的操作,您将在 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 ...
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您将其设置为 maven 项目,请确保将log4j 作为依赖项包含在内

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)