/*
* Copyright © 2015 Cask Data, Inc.
*
* Licensed 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 co.cask.cdap.explore.service;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.Marker;
/**
*
*/
public class HiveStreamRedirectorTest {
@Test
public void testLoggerRedirector() throws Exception {
CountingLogger logger = new CountingLogger();
SessionState sessionState = new SessionState(new HiveConf());
HiveStreamRedirector.redirectToLogger(sessionState, logger);
for (int i = 0; i < 5; i++) {
sessionState.out.print("testInfoLog" + i);
}
Assert.assertEquals(5, logger.getInfoLogs());
}
/**
* A logger that increments counters for simple info logs.
*/
private static final class CountingLogger implements Logger {
private int infoLogs = 0;
public int getInfoLogs() {
return infoLogs;
}
@Override
public String getName() {
return "CountingLogger";
}
@Override
public boolean isTraceEnabled() {
return false;
}
@Override
public void trace(String msg) {
// no-op
}
@Override
public void trace(String format, Object arg) {
// no-op
}
@Override
public void trace(String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void trace(String format, Object... arguments) {
// no-op
}
@Override
public void trace(String msg, Throwable t) {
// no-op
}
@Override
public boolean isTraceEnabled(Marker marker) {
return false;
}
@Override
public void trace(Marker marker, String msg) {
// no-op
}
@Override
public void trace(Marker marker, String format, Object arg) {
// no-op
}
@Override
public void trace(Marker marker, String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void trace(Marker marker, String format, Object... argArray) {
// no-op
}
@Override
public void trace(Marker marker, String msg, Throwable t) {
// no-op
}
@Override
public boolean isDebugEnabled() {
return false;
}
@Override
public void debug(String msg) {
// no-op
}
@Override
public void debug(String format, Object arg) {
// no-op
}
@Override
public void debug(String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void debug(String format, Object... arguments) {
// no-op
}
@Override
public void debug(String msg, Throwable t) {
// no-op
}
@Override
public boolean isDebugEnabled(Marker marker) {
return false;
}
@Override
public void debug(Marker marker, String msg) {
// no-op
}
@Override
public void debug(Marker marker, String format, Object arg) {
// no-op
}
@Override
public void debug(Marker marker, String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void debug(Marker marker, String format, Object... arguments) {
// no-op
}
@Override
public void debug(Marker marker, String msg, Throwable t) {
// no-op
}
@Override
public boolean isInfoEnabled() {
return true;
}
@Override
public void info(String msg) {
infoLogs++;
}
@Override
public void info(String format, Object arg) {
// no-op
}
@Override
public void info(String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void info(String format, Object... arguments) {
// no-op
}
@Override
public void info(String msg, Throwable t) {
// no-op
}
@Override
public boolean isInfoEnabled(Marker marker) {
return false;
}
@Override
public void info(Marker marker, String msg) {
// no-op
}
@Override
public void info(Marker marker, String format, Object arg) {
// no-op
}
@Override
public void info(Marker marker, String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void info(Marker marker, String format, Object... arguments) {
// no-op
}
@Override
public void info(Marker marker, String msg, Throwable t) {
// no-op
}
@Override
public boolean isWarnEnabled() {
return false;
}
@Override
public void warn(String msg) {
// no-op
}
@Override
public void warn(String format, Object arg) {
// no-op
}
@Override
public void warn(String format, Object... arguments) {
// no-op
}
@Override
public void warn(String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void warn(String msg, Throwable t) {
// no-op
}
@Override
public boolean isWarnEnabled(Marker marker) {
return false;
}
@Override
public void warn(Marker marker, String msg) {
// no-op
}
@Override
public void warn(Marker marker, String format, Object arg) {
// no-op
}
@Override
public void warn(Marker marker, String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void warn(Marker marker, String format, Object... arguments) {
// no-op
}
@Override
public void warn(Marker marker, String msg, Throwable t) {
// no-op
}
@Override
public boolean isErrorEnabled() {
return false;
}
@Override
public void error(String msg) {
// no-op
}
@Override
public void error(String format, Object arg) {
// no-op
}
@Override
public void error(String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void error(String format, Object... arguments) {
// no-op
}
@Override
public void error(String msg, Throwable t) {
// no-op
}
@Override
public boolean isErrorEnabled(Marker marker) {
return false;
}
@Override
public void error(Marker marker, String msg) {
// no-op
}
@Override
public void error(Marker marker, String format, Object arg) {
// no-op
}
@Override
public void error(Marker marker, String format, Object arg1, Object arg2) {
// no-op
}
@Override
public void error(Marker marker, String format, Object... arguments) {
// no-op
}
@Override
public void error(Marker marker, String msg, Throwable t) {
// no-op
}
}
}