# Logging außerhalb Debugging



## Ludwigm (17. Apr 2019)

Hallo,
Gibt es eine Möglichkeit die Logs die mit Log.d() erzeugt werden auch außerhalb des Debuggins mit einem PC und Android Studio einzusehen?
Kann man die Ausgabe der Funktion an eine Textdatei weiterleiten?

Oder gibt es bessere Alterantiven ?


Gruß
ludwig


----------



## Ludwigm (18. Apr 2019)

Ich habe es so versucht, indem ich eine neue Methode erstellt habe, die in eine txt Datei schreiben soll

```
public void appendLog(String text)
    {
        String home = System.getProperty("user.home");

        File logFile = new File(home + "/Documents/log_test.txt");
        if (!logFile.exists())
        {
            try
            {
                logFile.createNewFile();
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        try
        {
            //BufferedWriter for performance, true to set append to file flag
            BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
            buf.append(text);
            buf.newLine();
            buf.close();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Log.d(msg,logFile.toString());
    }
```

Leider wird keine Datei erstellt, bzw. konnte ich sie mit ES Datei Explorer nicht finden


----------



## kneitzel (18. Apr 2019)

Gibt dir System.getProperty("user.home") einen sinnvollen Pfad? Mal geprüft, was Du da für einen Pfad bekommst und ob Du da Rechte hast als App zu schreiben?

Also ich hätte jetzt Dinge wie:
Context.getDataDir(), Context.getDir() oder Context.getExternalFilesDir() erwartet. 

https://developer.android.com/reference/android/content/Context.html

Mit den besten Grüßen,

Konrad


----------



## Ludwigm (19. Apr 2019)

Danke für die Antwort.
Mit den Methoden der Context-Klasse klappt es, ich habe getDir() und getExternalFilesDir() probiert und mich für getExternalFilesDir() entschieden.
Was nohc nicht funktioniert ist, dass ich die erstellte txt Datei auf dem HAndy händisch  wieder finde. Unter dem Pfad /storage/emulated/0/Android/data/com.example.test2app/files ist mit ES Datei Explorer keine Datei sichtbar, Windows erkennt den Ordner erst gar nicht.
Wenn ich den Ordner lösche, wird er wieder erstellt und beim Auslesen der Datei mit Java ist auch noch der Inhalt der Datei vorhanden der vor dem Löschen gespeichert war.


Wie finde ich die txt Datei händisch?

Gruß Ludwig


----------



## kneitzel (19. Apr 2019)

Schau mal, ob es ein /data/data/<package>/files/ Ordner gibt, den du erreichen kannst. Bei external Storage sollte es unter /sdcard/ irgendwo sein. Aber das kann auch evtl. von Androidversion zu Androidversion unterschiedlich sein....


----------



## Ludwigm (19. Apr 2019)

Ne ist leider nicht vorhanden.
Ist  auch nicht so schlimm, dann muss ich mir den Inahlt der Datei eben über Logcat ausgeben lassen. DAzu ist die Zeit zu schade um an so einem "Luxus"-Problem zu tüfteln.


----------



## mihe7 (19. Apr 2019)

Wir verwenden ACRA für Error Reports. Der Doku nach kann man das Log auch in eine angegebene Datei schreiben lassen. Siehe https://github.com/ACRA/acra/wiki/AdvancedUsage


----------

