SQLLogger.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package de.tudarmstadt.informatik.hostage.logging;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.util.ArrayList;
  5. import android.content.Context;
  6. import android.content.SharedPreferences;
  7. import android.os.Environment;
  8. import android.preference.PreferenceManager;
  9. public class SQLLogger implements Logger{
  10. Context context;
  11. DatabaseHandler dbh;
  12. public SQLLogger(Context context){
  13. this.context = context;
  14. dbh = new DatabaseHandler(context);
  15. }
  16. public synchronized void write(Record record) {
  17. dbh.addRecord(record);
  18. }
  19. public void exportDatabase(String format){
  20. try {
  21. FileOutputStream log;
  22. SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
  23. if(pref.getBoolean("pref_external_storage", false)){
  24. //TODO Fehlermeldung wenn keine SD karte gefunden werden kann
  25. log = context.openFileOutput("hostage_" + format + "_" + System.currentTimeMillis() + ".log", Context.MODE_PRIVATE);
  26. } else{
  27. File file = new File(Environment.getExternalStorageDirectory(), "hostage_" + format + "_" + System.currentTimeMillis() + ".log");
  28. log = new FileOutputStream(file);
  29. }
  30. ArrayList<Record> records = dbh.getAllRecords();
  31. for(Record record : records){
  32. if(format.equals("JSON")){
  33. log.write((record.toStringJson() + "\n").getBytes());
  34. }else {
  35. log.write((record.toString() + "\n").getBytes());
  36. }
  37. }
  38. log.flush();
  39. log.close();
  40. } catch (Exception e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. public int getAttackCount(){
  45. return dbh.getAttackCount();
  46. }
  47. public int getAttackPerProtokollCount(String protocol){
  48. return dbh.getAttackPerProtokolCount(protocol);
  49. }
  50. public void clearLog(){
  51. dbh.clearData();
  52. }
  53. @Override
  54. public void close() {
  55. // TODO Auto-generated method stub
  56. }
  57. }