Repository: hbase Updated Branches: refs/heads/master 81a9c1ac3 -> 65a8d7743
HBASE-16061 Allow logging to a buffered console Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/65a8d774 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/65a8d774 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/65a8d774 Branch: refs/heads/master Commit: 65a8d77433cf72ce67e8b5e2efb35f2c2603c349 Parents: 81a9c1a Author: Elliott Clark <ecl...@apache.org> Authored: Fri Jun 17 16:32:57 2016 -0700 Committer: Elliott Clark <ecl...@apache.org> Committed: Fri Jun 17 17:06:12 2016 -0700 ---------------------------------------------------------------------- conf/log4j.properties | 5 +- .../hadoop/hbase/AsyncConsoleAppender.java | 48 ++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/65a8d774/conf/log4j.properties ---------------------------------------------------------------------- diff --git a/conf/log4j.properties b/conf/log4j.properties index d36a22e..74b13b1 100644 --- a/conf/log4j.properties +++ b/conf/log4j.properties @@ -80,13 +80,16 @@ log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender # # console -# Add "console" to rootlogger above if you want to use this +# Add "console" to rootlogger above if you want to use this # log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.err log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n +log4j.appender.asyncconsole=org.apache.hadoop.hbase.AsyncConsoleAppender +log4j.appender.asyncconsole.target=System.err + # Custom Logging levels log4j.logger.org.apache.zookeeper=INFO http://git-wip-us.apache.org/repos/asf/hbase/blob/65a8d774/hbase-common/src/main/java/org/apache/hadoop/hbase/AsyncConsoleAppender.java ---------------------------------------------------------------------- diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/AsyncConsoleAppender.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/AsyncConsoleAppender.java new file mode 100644 index 0000000..338265d --- /dev/null +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/AsyncConsoleAppender.java @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase; + +import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.log4j.AsyncAppender; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.PatternLayout; + +/** + * Logger class that buffers before trying to log to the specified console. + */ +@InterfaceAudience.Private +public class AsyncConsoleAppender extends AsyncAppender { + private final ConsoleAppender consoleAppender; + + public AsyncConsoleAppender() { + super(); + consoleAppender = new ConsoleAppender(new PatternLayout( + "%d{ISO8601} %-5p [%t] %c{2}: %m%n")); + this.addAppender(consoleAppender); + } + + public void setTarget(String value) { + consoleAppender.setTarget(value); + } + + public void activateOptions() { + consoleAppender.activateOptions(); + super.activateOptions(); + } + +}