1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-22 06:12:05 +01:00

Add ExceptionUtil

This commit is contained in:
Florian Schmaus 2019-04-08 23:06:11 +02:00
parent 3075430713
commit 1122bf394c
2 changed files with 41 additions and 8 deletions

View file

@ -16,12 +16,11 @@
*/
package org.jivesoftware.smack.debugger;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.util.ExceptionUtil;
/**
* Very simple debugger that prints to the console (stdout) the sent and received stanzas. Use
@ -55,12 +54,8 @@ public class ConsoleDebugger extends AbstractDebugger {
@Override
protected void log(String logMessage, Throwable throwable) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
// CHECKSTYLE:OFF
throwable.printStackTrace(pw);
// CHECKSTYLE:ON
log(logMessage + sw);
String stacktrace = ExceptionUtil.getStackTrace(throwable);
log(logMessage + '\n' + stacktrace);
}
public static final class Factory implements SmackDebuggerFactory {

View file

@ -0,0 +1,38 @@
/**
*
* Copyright 2019 Florian Schmaus.
*
* 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 org.jivesoftware.smack.util;
import java.io.PrintWriter;
import java.io.StringWriter;
public class ExceptionUtil {
public static String getStackTrace(Throwable throwable) {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
// CHECKSTYLE:OFF
throwable.printStackTrace(printWriter);
// CHECKSTYLE:ON
printWriter.flush();
StringBuffer stringBuffer = stringWriter.getBuffer();
return stringBuffer.toString();
}
}