下面列出了怎么用org.slf4j.helpers.NOPLogger的API类实例代码及写法,或者点击链接到github查看源代码。
public void init()
{
this.sql = Sponge.getServiceManager().provideUnchecked(SqlService.class);
try // TODO: the logger is annoying, so disable it anyway (although it is a dirty way)
{
Field field = DB.class.getDeclaredField("LOGGER");
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
int m = field.getModifiers() & ~Modifier.FINAL;
modifiersField.setAccessible(true);
modifiersField.setInt(field, m);
NOPLogger l = NOPLogger.NOP_LOGGER;
field.set(null, l);
}
catch (ReflectiveOperationException e)
{
throw new IllegalStateException(e);
}
}
@Override
public Table getTable(final String dbName, final String tableName, boolean ignoreAuthzErrors) throws TException{
Table table = getTableWithoutTableTypeChecking(dbName, tableName, ignoreAuthzErrors);
if(table == null){
return null;
}
TableType type = TableType.valueOf(table.getTableType());
switch (type) {
case EXTERNAL_TABLE:
case MANAGED_TABLE:
return table;
case VIRTUAL_VIEW:
throw UserException.unsupportedError().message("Hive views are not supported").build(NOPLogger.NOP_LOGGER);
case INDEX_TABLE:
default:
return null;
}
}
@Override
public Table getTable(final String dbName, final String tableName, boolean ignoreAuthzErrors) throws TException{
Table table = getTableWithoutTableTypeChecking(dbName, tableName, ignoreAuthzErrors);
if(table == null){
return null;
}
TableType type = TableType.valueOf(table.getTableType());
switch (type) {
case EXTERNAL_TABLE:
case MANAGED_TABLE:
return table;
case VIRTUAL_VIEW:
throw UserException.unsupportedError().message("Hive views are not supported").build(NOPLogger.NOP_LOGGER);
default:
return null;
}
}
private Optional<Integer> getNumThreadsFromCommand(
SingularityExecutorTaskProcessCallable taskProcess,
Optional<Integer> dockerPid,
String commandFormat
)
throws InterruptedException, ProcessFailedException {
SimpleProcessManager checkThreadsProcessManager = new SimpleProcessManager(
NOPLogger.NOP_LOGGER
);
List<String> cmd = ImmutableList.of(
"/bin/sh",
"-c",
String.format(commandFormat, dockerPid.orElse(taskProcess.getCurrentPid().get()))
);
List<String> output = checkThreadsProcessManager.runCommandWithOutput(cmd);
if (output.isEmpty()) {
LOG.warn("Output from ls was empty ({})", cmd);
return Optional.empty();
} else {
return Optional.of(Integer.parseInt(output.get(0)));
}
}
@Test
public void testCreateUploadDir() throws Exception {
final File file = temporaryFolder.newFolder();
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER);
assertTrue(Files.exists(testUploadDir));
}
@Test
public void testCreateUploadDirFails() throws Exception {
final File file = temporaryFolder.newFolder();
Assume.assumeTrue(file.setWritable(false));
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
try {
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER);
fail("Expected exception not thrown.");
} catch (IOException e) {
}
}
@Test
public void testCreateUploadDir() throws Exception {
final File file = temporaryFolder.newFolder();
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER, true);
assertTrue(Files.exists(testUploadDir));
}
@Test
public void testCreateUploadDirFails() throws Exception {
final File file = temporaryFolder.newFolder();
Assume.assumeTrue(file.setWritable(false));
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
try {
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER, true);
fail("Expected exception not thrown.");
} catch (IOException e) {
}
}
/**
* {@inheritDoc}
* <p>Attempts to find the <strong>real</strong> <code>Logger</code> instance that
* is doing the heavy lifting and routes the request to an instance of
* {@link CasDelegatingLogger}. The instance is cached by the logger name.</p>
*/
@Override
public Logger getLogger(final String name) {
if (StringUtils.isBlank(name)) {
return NOPLogger.NOP_LOGGER;
}
synchronized (loggerMap) {
if (!loggerMap.containsKey(name)) {
final Logger logger = getRealLoggerInstance(name);
loggerMap.put(name, new CasDelegatingLogger(logger));
}
return loggerMap.get(name);
}
}
@Override
public void log(Class<?> logSource, String msg, Object...args){
Logger logger = this.logger;
if(logger==null || NOPLogger.class.isInstance(logger)){
logger = JFishLoggerFactory.getLogger(logSource);
}
logger.info("\n"+msg, args);
}
protected TimeLogger getTimeLogger(){
TimeLogger logger = this.timeLogger;
if(logger==null){
Slf4jTimeLogger slf4j = new Slf4jTimeLogger();
if(slf4j.getLogger() instanceof NOPLogger){
logger = new TimerOutputer();
}else{
logger = slf4j;
}
this.timeLogger = logger;
}
return logger;
}
public static Logger findMailLogger(){
Logger logger = mailLogger;
if (logger == null) {
logger = findLogger(MAIL_LOGGER);
if (logger == null) {
logger = NOPLogger.NOP_LOGGER;
}
mailLogger = logger;
}
return logger;
}
@Test
public void testCreateUploadDir() throws Exception {
final File file = temporaryFolder.newFolder();
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER, true);
assertTrue(Files.exists(testUploadDir));
}
@Test
public void testCreateUploadDirFails() throws Exception {
final File file = temporaryFolder.newFolder();
Assume.assumeTrue(file.setWritable(false));
final Path testUploadDir = file.toPath().resolve("testUploadDir");
assertFalse(Files.exists(testUploadDir));
try {
RestServerEndpoint.createUploadDir(testUploadDir, NOPLogger.NOP_LOGGER, true);
fail("Expected exception not thrown.");
} catch (IOException e) {
}
}
@Test
public void testLookoutLoggerFactory() {
Logger logger = LookoutLoggerFactory.getLogger(LookoutLoggerFactoryTest.class);
Assert.assertTrue(logger instanceof NOPLogger);
}
public static Logger findErrorLogger(){
return findErrorLogger(NOPLogger.NOP_LOGGER);
}