diff --git a/pom.xml b/pom.xml
index 90e671d..2eb18d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,5 +28,10 @@
json
20180130
+
+ log4j
+ log4j
+ 1.2.17
+
\ No newline at end of file
diff --git a/src/de/mrbesen/telegram/TelegramAPI.java b/src/de/mrbesen/telegram/TelegramAPI.java
index 01eea9c..bc60dc2 100644
--- a/src/de/mrbesen/telegram/TelegramAPI.java
+++ b/src/de/mrbesen/telegram/TelegramAPI.java
@@ -7,7 +7,6 @@ import java.util.LinkedList;
import java.util.Scanner;
import javax.net.ssl.HttpsURLConnection;
-import javax.print.attribute.SetOfIntegerSyntax;
import org.json.JSONArray;
import org.json.JSONObject;
@@ -18,11 +17,14 @@ import de.mrbesen.telegram.event.Event;
import de.mrbesen.telegram.event.EventManager;
import de.mrbesen.telegram.event.events.UserSendAudioEvent;
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
+import de.mrbesen.telegram.log.Log;
+import de.mrbesen.telegram.log.Log4JLog;
+import de.mrbesen.telegram.log.SimpleLog;
import de.mrbesen.telegram.objects.JSONBased.Member;
-import de.mrbesen.telegram.objects.TUser.Status;
import de.mrbesen.telegram.objects.TAudio;
import de.mrbesen.telegram.objects.TMessage;
import de.mrbesen.telegram.objects.TUser;
+import de.mrbesen.telegram.objects.TUser.Status;
public class TelegramAPI implements Runnable {
@@ -36,10 +38,11 @@ public class TelegramAPI implements Runnable {
private Thread thread;
private boolean run = true;
private String helpmessage = "generic helppage\nuse TelegramAPI.setHelpText(java.lang.String) to change this.";
-
+
private LinkedList users = new LinkedList<>();
private CommandManager cmdmgr = new CommandManager();
private EventManager evntmgr = new EventManager();
+ Log log = new SimpleLog();
public TelegramAPI(String apikey) {
if (!apikey.matches(TOKENREGEX) ) {
@@ -67,7 +70,7 @@ public class TelegramAPI implements Runnable {
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
wr.write(parameter);
wr.flush();
- System.out.println( this.getClass().getSimpleName() + ": request: " + request + " content " + parameter + " -> " + con.getResponseCode() + ", " + con.getResponseMessage());
+ log.log( this.getClass().getSimpleName() + ": request: " + request + " content " + parameter + " -> " + con.getResponseCode() + ", " + con.getResponseMessage());
if(con.getResponseCode() == 200) {
Scanner s = new Scanner(con.getInputStream());
StringBuilder sb_apianswer = new StringBuilder();
@@ -87,7 +90,7 @@ public class TelegramAPI implements Runnable {
JSONObject o = request("sendMessage", msg.getQ());
return new TMessage(o.getJSONObject("result"), this);
} catch(IOException e) {
- e.printStackTrace();
+ log.log("",e);
}
return null;
}
@@ -140,8 +143,7 @@ public class TelegramAPI implements Runnable {
try {
processUpdates(request("getUpdates", "offset=" + msg_offset));
} catch (IOException e) {
- System.err.println("error getting updates.");
- e.printStackTrace();
+ log.log("error getting updates.", e);
}
}
@@ -192,6 +194,19 @@ public class TelegramAPI implements Runnable {
helpmessage = ( helptext == null ? "" : helptext);
}
+ /**
+ * Set the logging method, use {@link Log4JLog} for usage of LOG4J,
+ * or {@link SimpleLog} for usage of System.out.println();
+ * use Null t odisable logging the default is {@link SimpleLog}
+ * @param l
+ */
+ public void setLog(Log l) {
+ if(l == null)
+ log = new Log();
+ else
+ log = l;
+ }
+
public CommandManager getCommandManager() {
return cmdmgr;
}
@@ -298,4 +313,5 @@ public class TelegramAPI implements Runnable {
isArray = b;
}
}
+
}
diff --git a/src/de/mrbesen/telegram/commands/CommandManager.java b/src/de/mrbesen/telegram/commands/CommandManager.java
index 30bf3fc..8524891 100644
--- a/src/de/mrbesen/telegram/commands/CommandManager.java
+++ b/src/de/mrbesen/telegram/commands/CommandManager.java
@@ -31,7 +31,7 @@ public class CommandManager {
if(result)
break;
} catch(Throwable t) {
- System.err.println("Error, while performing Command. ");
+ System.err.println("Error, while performing Command. ");//TODO do loggin here
t.printStackTrace();
}
}
diff --git a/src/de/mrbesen/telegram/log/Log.java b/src/de/mrbesen/telegram/log/Log.java
new file mode 100644
index 0000000..525f422
--- /dev/null
+++ b/src/de/mrbesen/telegram/log/Log.java
@@ -0,0 +1,12 @@
+package de.mrbesen.telegram.log;
+
+public class Log {
+
+ public void log( String msg) {
+
+ }
+
+ public void log(String msg, Throwable t) {
+
+ }
+}
diff --git a/src/de/mrbesen/telegram/log/Log4JLog.java b/src/de/mrbesen/telegram/log/Log4JLog.java
new file mode 100644
index 0000000..08ff486
--- /dev/null
+++ b/src/de/mrbesen/telegram/log/Log4JLog.java
@@ -0,0 +1,18 @@
+package de.mrbesen.telegram.log;
+
+import org.apache.log4j.Logger;
+
+public class Log4JLog extends Log {
+
+ Logger log = Logger.getRootLogger();
+
+ @Override
+ public void log(String msg) {
+ log.info(msg);
+ }
+
+ @Override
+ public void log(String msg, Throwable t) {
+ log.info(msg, t);
+ }
+}
diff --git a/src/de/mrbesen/telegram/log/SimpleLog.java b/src/de/mrbesen/telegram/log/SimpleLog.java
new file mode 100644
index 0000000..4b1f762
--- /dev/null
+++ b/src/de/mrbesen/telegram/log/SimpleLog.java
@@ -0,0 +1,16 @@
+package de.mrbesen.telegram.log;
+
+public class SimpleLog extends Log {
+
+ @Override
+ public void log(String msg) {
+ System.out.println(msg);
+ }
+
+ @Override
+ public void log(String msg, Throwable t) {
+ System.out.println(msg);
+ t.printStackTrace(System.out);
+ }
+
+}