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); + } + +}