Skip to content

Commit

Permalink
* Remove usage of org.apache.logging.log4j.core.config.Configurator
Browse files Browse the repository at this point in the history
* Added new methods in Log4jUtils.java and InternalLog4jUtils.java
* Disabled info/debug logging of existing scripts
  • Loading branch information
NihalJain committed Dec 21, 2023
1 parent 60b25f2 commit f334fb1
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 33 deletions.
8 changes: 6 additions & 2 deletions bin/draining_servers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,12 @@ def listServers(_options)

hostOrServers = ARGV[1..ARGV.size]

# Create a logger and save it to ruby global
$LOG = LoggerFactory.getLogger(NAME)
# disable debug/info logging on this script for clarity
log_level = "ERROR"
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop.hbase', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)

case ARGV[0]
when 'add'
if ARGV.length < 2
Expand Down
7 changes: 4 additions & 3 deletions bin/get-active-master.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@
java_import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker

# disable debug/info logging on this script for clarity
log_level = org.apache.logging.log4j.Level::ERROR
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.hadoop.hbase', log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.zookeeper', log_level)
log_level = "ERROR"
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop.hbase', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)

config = HBaseConfiguration.create

Expand Down
9 changes: 6 additions & 3 deletions bin/replication/copy_tables_desc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
java_import org.apache.hadoop.hbase.HConstants
java_import org.apache.hadoop.hbase.TableName
java_import org.apache.hadoop.hbase.client.ConnectionFactory
java_import org.slf4j.LoggerFactory

# Name of this script
NAME = 'copy_tables_desc'.freeze
Expand Down Expand Up @@ -60,9 +59,13 @@ def copy(src, dst, table)
puts format('Schema for table "%s" was succesfully copied to remote cluster.', table)
end

usage if ARGV.size < 2 || ARGV.size > 3
# disable debug/info logging on this script for clarity
log_level = "ERROR"
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop.hbase', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)

LOG = LoggerFactory.getLogger(NAME)
usage if ARGV.size < 2 || ARGV.size > 3

parts1 = ARGV[0].split(':')

Expand Down
6 changes: 6 additions & 0 deletions bin/shutdown_regionserver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ def usage(msg = nil)
abort
end

# disable debug/info logging on this script for clarity
log_level = "ERROR"
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop.hbase', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)

usage if ARGV.empty?

ARGV.each do |x|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,28 @@ final class InternalLog4jUtils {
private InternalLog4jUtils() {
}

static void setLogLevel(String loggerName, String levelName) {
private static org.apache.logging.log4j.Level getLevel(String levelName)
throws IllegalArgumentException {
org.apache.logging.log4j.Level level =
org.apache.logging.log4j.Level.toLevel(levelName.toUpperCase());
if (!level.toString().equalsIgnoreCase(levelName)) {
throw new IllegalArgumentException("Unsupported log level " + levelName);
}
org.apache.logging.log4j.core.config.Configurator.setLevel(loggerName, level);
return level;
}

static void setAllLevels(String loggerName, String levelName) {
org.apache.logging.log4j.Level level = getLevel(levelName);
org.apache.logging.log4j.core.config.Configurator.setAllLevels(loggerName, getLevel(levelName));
}

static void setLogLevel(String loggerName, String levelName) {
org.apache.logging.log4j.core.config.Configurator.setLevel(loggerName, getLevel(levelName));
}

static void setRootLevel(String levelName) {
String loggerName = org.apache.logging.log4j.LogManager.getRootLogger().getName();
setLogLevel(loggerName, levelName);
}

static String getEffectiveLevel(String loggerName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,9 @@ private static void throwUnchecked(Throwable throwable) {
}
}

public static void setLogLevel(String loggerName, String levelName) {
Method method = getMethod("setLogLevel", String.class, String.class);
private static void invoke(Method method, Object... args) throws AssertionError {
try {
method.invoke(null, loggerName, levelName);
method.invoke(null, args);
} catch (IllegalAccessException e) {
throw new AssertionError("should not happen", e);
} catch (InvocationTargetException e) {
Expand All @@ -70,6 +69,21 @@ public static void setLogLevel(String loggerName, String levelName) {
}
}

public static void setAllLevels(String loggerName, String levelName) {
Method method = getMethod("setAllLevels", String.class, String.class);
invoke(method, loggerName, levelName);
}

public static void setLogLevel(String loggerName, String levelName) {
Method method = getMethod("setLogLevel", String.class, String.class);
invoke(method, loggerName, levelName);
}

public static void setRootLevel(String levelName) {
Method method = getMethod("setRootLevel", String.class);
invoke(method, levelName);
}

public static String getEffectiveLevel(String loggerName) {
Method method = getMethod("getEffectiveLevel", String.class);
try {
Expand Down
16 changes: 8 additions & 8 deletions hbase-shell/src/main/ruby/jar-bootstrap.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def add_to_configuration(c, arg)
opts.ordering = GetoptLong::REQUIRE_ORDER

script2run = nil
log_level = org.apache.logging.log4j.Level::ERROR
log_level = "ERROR"
@shell_debug = false
interactive = true
full_backtrace = false
Expand All @@ -118,7 +118,7 @@ def add_to_configuration(c, arg)
when D_ARG
conf_from_cli = add_to_configuration(conf_from_cli, arg)
when '--debug'
log_level = org.apache.logging.log4j.Level::DEBUG
log_level = "DEBUG"
full_backtrace = true
@shell_debug = true
puts 'Setting DEBUG log level...'
Expand All @@ -138,8 +138,8 @@ def add_to_configuration(c, arg)
ARGV.unshift('-d') if @shell_debug

# Set logging level to avoid verboseness
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.zookeeper', log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.hadoop', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)

# Require HBase now after setting log levels
require 'hbase_constants'
Expand All @@ -165,14 +165,14 @@ def debug
if @shell_debug
@shell_debug = false
conf.back_trace_limit = 0
log_level = org.apache.logging.log4j.Level::ERROR
log_level = "ERROR"
else
@shell_debug = true
conf.back_trace_limit = 100
log_level = org.apache.logging.log4j.Level::DEBUG
log_level = "DEBUG"
end
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.zookeeper', log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels('org.apache.hadoop', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.zookeeper', log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels('org.apache.hadoop', log_level)
debug?
end

Expand Down
12 changes: 6 additions & 6 deletions hbase-shell/src/test/ruby/no_cluster_tests_runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
include Java

# Set logging level to avoid verboseness
log_level = org.apache.logging.log4j.Level::OFF
org.apache.logging.log4j.core.config.Configurator.setRootLevel(log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.zookeeper", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.hdfs", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.hbase", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.ipc.HBaseServer", log_level)
log_level = "OFF"
org.apache.hadoop.hbase.logging.Log4jUtils.setRootLevel(log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.zookeeper", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.hdfs", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.hbase", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.ipc.HBaseServer", log_level)

java_import org.apache.hadoop.hbase.HBaseTestingUtility

Expand Down
12 changes: 6 additions & 6 deletions hbase-shell/src/test/ruby/tests_runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
include Java

# Set logging level to avoid verboseness
log_level = org.apache.logging.log4j.Level::OFF
org.apache.logging.log4j.core.config.Configurator.setRootLevel(log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.zookeeper", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.hdfs", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.hbase", log_level)
org.apache.logging.log4j.core.config.Configurator.setAllLevels("org.apache.hadoop.ipc.HBaseServer", log_level)
log_level = "OFF"
org.apache.hadoop.hbase.logging.Log4jUtils.setRootLevel(log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.zookeeper", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.hdfs", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.hbase", log_level)
org.apache.hadoop.hbase.logging.Log4jUtils.setAllLevels("org.apache.hadoop.ipc.HBaseServer", log_level)

java_import org.apache.hadoop.hbase.HBaseTestingUtility

Expand Down

0 comments on commit f334fb1

Please sign in to comment.