下面列出了怎么用org.slf4j.impl.SimpleLogger的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Adds a little (not complete) console debug output to a mocked logger.
*
* @param mogger
* the mocked logger
*/
public static void addConsoleDebug(SimpleLogger mogger) {
Answer<Void> answer = new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) throws Throwable {
Object[] arguments = invocation.getArguments();
if (arguments != null && arguments.length > 0
&& arguments[0] != null) {
System.out.println(arguments[0]);
}
return null;
}
};
Mockito.doAnswer(answer).when(mogger).debug(Matchers.anyString());
Mockito.doAnswer(answer).when(mogger).debug(Matchers.anyString(),
Matchers.any(Throwable.class));
}
@Override
public void starting(Description description) {
if (FirebaseApp.getApps().isEmpty()) {
final GoogleCredentials credentials;
try {
credentials = GoogleCredentials.fromStream(new FileInputStream(SERVICE_ACCOUNT_CREDENTIALS));
} catch (IOException e) {
throw new RuntimeException(e);
}
FirebaseOptions firebaseOptions = new FirebaseOptions.Builder()
.setDatabaseUrl(databaseUrl)
.setCredentials(credentials)
.build();
FirebaseApp.initializeApp(firebaseOptions);
System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "DEBUG");
}
this.databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl(databaseUrl);
}
private ByteArrayOutputStream prepLogOutputStream() throws Exception {
LoggerFactory.getLogger(GetJMSQueue.class);
Field field = SimpleLogger.class.getDeclaredField("TARGET_STREAM");
field.setAccessible(true);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
field.set(null, new PrintStream(bos));
return bos;
}
private void setupLogging() {
if (verbosityLevel <= 0) {
// Verbosity is INFO or OFF, we hide the thread and logger names
System.setProperty(SimpleLogger.SHOW_THREAD_NAME_KEY, "false");
System.setProperty(SimpleLogger.SHOW_LOG_NAME_KEY, "false");
}
String level;
switch (verbosityLevel) {
case -1:
level = "OFF";
break;
case 1:
level = "DEBUG";
break;
case 2:
level = "TRACE";
break;
default:
level = "INFO";
break;
}
System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, level);
LOGGER = LoggerFactory.getLogger(Main.class);
LOGGER.debug("Log Level: {}", level);
}
@Before
public void setup() throws Exception {
tmpRoot = temporaryFolder.getRoot();
// Use a file for logs so as tests can assert the warnings shown to the
// user.
loggerFile = new File(tmpRoot, "test.log");
loggerFile.createNewFile();
// Setting a system property we make SimpleLogger to output to a file
System.setProperty(SimpleLogger.LOG_FILE_KEY,
loggerFile.getAbsolutePath());
// re-init logger to get new configuration
initLogger();
frontendDirectory = new File(tmpRoot, DEFAULT_FRONTEND_DIR);
nodeModulesPath = new File(tmpRoot, NODE_MODULES);
generatedPath = new File(tmpRoot, DEFAULT_GENERATED_DIR);
File tokenFile = new File(tmpRoot, TOKEN_FILE);
ClassFinder classFinder = getClassFinder();
updater = new UpdateImports(classFinder, getScanner(classFinder),
tmpRoot, tokenFile);
assertTrue(nodeModulesPath.mkdirs());
createExpectedImports(frontendDirectory, nodeModulesPath);
assertTrue(new File(nodeModulesPath,
FLOW_NPM_PACKAGE_NAME + "ExampleConnector.js").exists());
}
@Before
public void setup() throws Exception {
File tmpRoot = temporaryFolder.getRoot();
// Use a file for logs so as tests can assert the warnings shown to the
// user.
loggerFile = new File(tmpRoot, "test.log");
loggerFile.createNewFile();
// Setting a system property we make SimpleLogger to output to a file
System.setProperty(SimpleLogger.LOG_FILE_KEY,
loggerFile.getAbsolutePath());
// re-init logger to get new configuration
initLogger();
frontendDirectory = new File(tmpRoot, DEFAULT_FRONTEND_DIR);
nodeModulesPath = new File(tmpRoot, NODE_MODULES);
generatedPath = new File(tmpRoot, DEFAULT_GENERATED_DIR);
importsFile = new File(generatedPath, IMPORTS_NAME);
ClassFinder classFinder = getClassFinder();
updater = new TaskUpdateImports(classFinder, getScanner(classFinder),
finder -> null, tmpRoot, generatedPath, frontendDirectory, null,
null, false) {
@Override
Logger log() {
if (useMockLog) {
return logger;
} else {
return super.log();
}
}
};
assertTrue(nodeModulesPath.mkdirs());
createExpectedImports(frontendDirectory, nodeModulesPath);
assertTrue(new File(nodeModulesPath,
FLOW_NPM_PACKAGE_NAME + "ExampleConnector.js").exists());
}
protected static int mainInternal(String... args) {
CommandMain mainCommand = new CommandMain();
CommandPomMergeDriver mergeCommand = new CommandPomMergeDriver();
CommandPomVersionReplacer versionReplacerCommand = new CommandPomVersionReplacer();
JCommander jc = new JCommander(mainCommand);
jc.addCommand("merge", mergeCommand);
jc.addCommand("replace", versionReplacerCommand);
try {
jc.parse(args);
} catch (ParameterException e) {
System.err.println(e.getMessage());
return 1;
}
String logLevel = mainCommand.isDebug() ? "debug" : "error";
System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, logLevel);
logger = LoggerFactory.getLogger(Main.class);
if (logger.isInfoEnabled()) {
logger.info("PomUtils version {}", ManifestUtils.getImplementationVersion());
}
if ("merge".equals(jc.getParsedCommand())) {
return executePomMergeDriver(mergeCommand);
} else if ("replace".equals(jc.getParsedCommand())) {
executePomVersionReplacer(versionReplacerCommand);
return 0;
}
jc.usage();
return 1;
}
@Before
public void before()
{
System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
}
@After
public void tearDown() throws Exception {
// re-init logger to reset to default
System.clearProperty(SimpleLogger.LOG_FILE_KEY);
initLogger();
}
private void initLogger() throws Exception, SecurityException {
// init method is protected
Method method = SimpleLogger.class.getDeclaredMethod("init");
method.setAccessible(true);
method.invoke(null);
}
@After
public void tearDown() throws Exception {
// re-init logger to reset to default
System.clearProperty(SimpleLogger.LOG_FILE_KEY);
initLogger();
}
private void initLogger() throws Exception, SecurityException {
// init method is protected
Method method = SimpleLogger.class.getDeclaredMethod("init");
method.setAccessible(true);
method.invoke(null);
}