Форум программистов, компьютерный форум CyberForum.ru

Сохранение logcat в txt файл на SD - Android

Восстановить пароль Регистрация
 
 
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
21.07.2016, 22:34     Сохранение logcat в txt файл на SD #1
При нажатии на картинку срабатывает обработчик нажатия со следующим методом. Но почему-то файл нигде не появляется хотя должен появиться в корне SD карты, если я правильно понимаю. Подскажите что не так

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void writefile() {
        File externalStorageDir = Environment.getExternalStorageDirectory();
        File myFile = new File(externalStorageDir, "yourfilename.txt");
        if (myFile.exists()) {
            try {
                FileOutputStream fostream = new FileOutputStream(myFile);
                OutputStreamWriter oswriter = new OutputStreamWriter(fostream);
                BufferedWriter bwriter = new BufferedWriter(oswriter);
                bwriter.write("Hi welcome ");
                bwriter.newLine();
                bwriter.close();
                oswriter.close();
                fostream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            try {
                myFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
Добавлено через 1 минуту
И как использовать для сохранения LogCat следующую запись, которую предлагают на просторах интернета

Java
1
2
String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-v", "time", "-f", filePath});
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2016, 22:34     Сохранение logcat в txt файл на SD
Посмотрите здесь:

Android Вывод LogCat
logcat Android
Android LogCat при отладке
Альтернатива LogCat Android
Android Ошибки LogCat
Хранить LogCat в файле Android
Android Logcat на устройстве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 05:51     Сохранение logcat в txt файл на SD #2
Java
1
File myFile = new File(externalStorageDir, "yourfilename.txt");
Это что вообще? Так не пробовал?
Java
1
File myFile = new File(externalStorageDir.toString +"/" +  "yourfilename.txt");
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 08:32  [ТС]     Сохранение logcat в txt файл на SD #3
Файл всё равно не появляется

Добавлено через 24 минуты
Делаю простейшую запись по примеру, не может создать файл FileNotFoundException. Что это может быть?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            fileName = new File(sdDir, "cache/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
        if (!fileName.exists())
            fileName.mkdirs();
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
 
 
        } catch (IOException e) {
            Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
        }
    }
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 08:47     Сохранение logcat в txt файл на SD #4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            // fileName = new File(sdDir, "cache/logcat.txt"); // вместо этого пишем:
           fileName = new File(sdDir.toString + "/cache/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
        if (!fileName.exists()) // Команда "fileName = new File(sdDir.toString + "/cache/logcat.txt");" уже создала новый файл,
                                       // Поэтому проверка if (!fileName.exists()) практически бессмысленна
            fileName.mkdirs(); // А тут зачем-то создается папка с именем файла???
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
 
 
 
        } catch (IOException e) {
            Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
        }
    }
Как-то все запутано...

Добавлено через 1 минуту
Логичнее было бы:

if (!fileName.exists()) fileName = new File(sdDir.toString + "/cache/logcat.txt");

Добавлено через 6 минут
И никак не пойму, почему народ принципиально не использует логи. Ведь все сразу видно будет, где косяк... Toast то выдается хоть, или нет?
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 08:56  [ТС]     Сохранение logcat в txt файл на SD #5
Попробую сейчас.

Добавлено через 2 минуты
Вот что пишет в ответ лог: D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/cache/logcat.txt: open failed: ENOENT (No such file or directory)

Добавлено через 39 секунд
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            fileName = new File(sdDir.toString() + "/cache/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
        } catch (IOException e) {
            Log.d(TAG, "WriteFileLogCat: "+e);
        }
    }
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 09:13     Сохранение logcat в txt файл на SD #6
Я имею в виду сделать так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            fileName = new File(sdDir.toString() + "/cache/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
 
        Log.e("TAG", "Создан файл " + fileName);
 
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
        } catch (IOException e) {
            Log.d(TAG, "WriteFileLogCat: "+e);
        }
    }
Добавлено через 5 минут
Видимо сначала надо папку создать?

Java
1
2
3
4
5
6
7
8
String folder = sdDir.toString() + "/cache";
        File f = new File(folder);
        if (!f.isDirectory()) {
            try {
                f.mkdirs();
            } catch (Exception e) {
            }
        }
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 09:25  [ТС]     Сохранение logcat в txt файл на SD #7
Похоже это финал?

D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/logcat.txt: open failed: EACCES (Permission denied)

Добавлено через 1 минуту
Убрал вообще папку. Так же должно в SD корень писать?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            fileName = new File(sdDir.toString() + "/cache/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
 
        Log.e("TAG", "Создан файл " + fileName);
 
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
        } catch (IOException e) {
            Log.d(TAG, "WriteFileLogCat: "+e);
        }
    }
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 09:52     Сохранение logcat в txt файл на SD #8
Java
1
fileName = new File(sdDir.toString() + "/cache/logcat.txt");
Убрал совсем папку, а она сама назад приползла?

Что логи пишут?
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 09:54  [ТС]     Сохранение logcat в txt файл на SD #9
Ой. Не то написал. Сделал так. Лог ответил: D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/logcat.txt: open failed: EACCES (Permission denied)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void WriteFileLogCat() {
        File fileName = null;
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            File sdDir = android.os.Environment.getExternalStorageDirectory();
            fileName = new File(sdDir.toString() + "/logcat.txt");
        } else {
            fileName = MainActivity.this.getCacheDir();
        }
 
        Log.e("TAG", "Создан файл " + fileName);
 
        try {
            FileWriter f = new FileWriter(fileName);
            f.write("hello world");
            f.flush();
            f.close();
        } catch (IOException e) {
            Log.d(TAG, "WriteFileLogCat: "+e);
        }
    }
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:01     Сохранение logcat в txt файл на SD #10
Да блин. В манифесте разрешения прописаны хоть на доступ к SD?
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 10:02  [ТС]     Сохранение logcat в txt файл на SD #11
?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.phantom.softteco">

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />...
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:04     Сохранение logcat в txt файл на SD #12
А тут что?

Java
1
Log.e("TAG", "Создан файл " + fileName);
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 10:06  [ТС]     Сохранение logcat в txt файл на SD #13
Тишина. Только пишет Exception.
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:11     Сохранение logcat в txt файл на SD #14
Да как это тишина? Ну не бывает так

Добавлено через 50 секунд
Фильтр на логах не стоит?
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 10:13  [ТС]     Сохранение logcat в txt файл на SD #15
07-22 10:01:28.713 25028-25028/com.example.phantom.softteco D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/cache/logcat.txt: open failed: ENOENT (No such file or directory)
07-22 10:04:52.443 25028-25028/com.example.phantom.softteco D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/cache/logcat.txt: open failed: ENOENT (No such file or directory)

2 подряд копирую с фильтра с тэгов

Добавлено через 1 минуту
Стоп... Не правильно был тэг в этом коде проставлен...

07-22 10:12:08.463 10037-10037/com.example.phantom.softteco E/MyLogs: Создан файл /storage/emulated/0/cache/logcat.txt
07-22 10:12:08.463 10037-10037/com.example.phantom.softteco D/MyLogs: WriteFileLogCat: java.io.FileNotFoundException: /storage/emulated/0/cache/logcat.txt: open failed: ENOENT (No such file or directory)

Файл создан. А где он распологается? Как его вручную открыть на телефоне? или через explorer в виндоус.
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:20     Сохранение logcat в txt файл на SD #16
Путь же написан, по нему и открыть.

Добавлено через 2 минуты
Чета я не понимаю. Ну попробуй ещё READ_EXTERNAL в манифесте добавить
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 10:21  [ТС]     Сохранение logcat в txt файл на SD #17
Смотрите, я прошу прощения за такие вопросы. Могу ли я этот файл зайти в SD память телефона и открыть руками?
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:25     Сохранение logcat в txt файл на SD #18
Java
1
FileWriter f = new FileWriter(fileName.toString());
Добавлено через 45 секунд
Не в этом ли косяк?
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
22.07.2016, 10:26  [ТС]     Сохранение logcat в txt файл на SD #19
Каков будет вердикт?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2016, 10:26     Сохранение logcat в txt файл на SD
Еще ссылки по теме:

Android LogCat
Ошибка в logcat AndroidStudio Android
Android Ошибки в logcat
Запись logcat в файл на SD-card из своего приложения Android
Android В logcat не читаемая информация

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
22.07.2016, 10:26     Сохранение logcat в txt файл на SD #20
Вот не работал я с FileWriter раньше, не довелось
Yandex
Объявления
22.07.2016, 10:26     Сохранение logcat в txt файл на SD
Ответ Создать тему
Опции темы

Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru