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

Програмная настройка логера slf4j - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Как достать исходный код из APK? http://www.cyberforum.ru/android-dev/thread1786321.html
Сразу оговорюсь, пытаюсь "вскрыть" свою программу, дабы увидеть её внутренности глазами взломщика и помешать ему. Тот же apktool запросто выковыривает ресурсы. Мне это не страшно, все критичные данные я аккуратно зашифровал. А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец. Сабж.
Android Не получается добавить новый AVD Здравствуйте. Пытаюсь следовать вот этому уроку http://startandroid.ru/ru/uroki/vse-uroki-spiskom/12-urok-3-sozdanie-avd-pervoe-prilozhenie-struktura-android-proekta.html Но когда добавляю AVD. Выбираю девайс Nexus S - Android 6.0 Api Level 23, но в CPU / API пишет NO SYSTEM IMAGES INSTALLED FOR THIS TARGET Прикрепил скрин настроек. Подскажите пожалуйста что не так делаю http://www.cyberforum.ru/android-dev/thread1786297.html
Android CoverFlow галерея
Всем, привет. Нужна помощь. Нужно в приложении добавить небольшой слайдер фоток. Нашел вот этот все красиво, все работает. Но у меня вопрос как убрать отражение картинки снизу, а то не вписывается в общий дизайн приложения.
3D треугольники в libGDX Android
Нужен пример кода для вывода на экран массива треугольников (как на картинке)
Android Выбор языка для разработки ПО под Android http://www.cyberforum.ru/android-dev/thread1786118.html
Добрый. Необходимо заняться разработкой ПО под Android. Столкнулся с проблемой: "Какой язык программирования для разработки выбрать?". Из ООП-языков имею опыт с: Java, C++,C#,Scala. Вопрос поднят для того,чтобы понять какой язык более подходит для программирования под андроид. Знаю, что Java подходит лучше всего, но хочу выслушать мнения.
Android Как открыть web-страницу как это сделано в Telegram? Здравствуйте! Когда в приложениях Telegram или Вконтакте для андройд открываешь веб-ссылку, тебя не перебрасывает в какой либо браузер, а открывает как будто свой нативный, который можно просто закрыть оставаясь в своем приложении. Пример в прикрепленном изображении. Такое ощущение что это запущенный Chrome с какимто флагом, т.к. в меню написано "Техногии Chrome". Как это называется? Куда... подробнее

Показать сообщение отдельно
tavla
0 / 0 / 0
Регистрация: 27.07.2016
Сообщений: 5
27.07.2016, 18:22     Програмная настройка логера slf4j
добрый день.

использую логгер slf4j, при конфигурации посредством xml все работает отлично
XML
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
26
27
28
29
30
31
32
33
34
35
36
<configuration>
    <property name="LOG_DIR" value="/sdcard/Results/.logs" />
 
    <appender
            name="LOGCAT"
            class="ch.qos.logback.classic.android.LogcatAppender" >
        <tagEncoder>
            <pattern>akrit</pattern>
        </tagEncoder>
        <encoder>
            <pattern>[%class{0}][%thread] %msg%n</pattern>
        </encoder>
    </appender>
 
 
<!-- -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/log.txt</file>
 
        <append>true</append>
        <encoder>
            <pattern>%date{ISO8601} [%thread] %-5level %logger{0} %msg%n</pattern>
        </encoder>
 
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/log.%d.txt</fileNamePattern>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
    </appender>
 
    <root level="DEBUG" >
        <appender-ref ref="LOGCAT" />
        <appender-ref ref="FILE" />
    </root>
 
</configuration>
но когда создаю то же самое программно, ничего нет ни в логкэте, ни в файле лога:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package projects.common.logger;
 
import org.slf4j.LoggerFactory;
 
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.android.LogcatAppender;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
 
public class LogBack {
    private static boolean debugMode = true;
    private static String logPath = null;
 
    public static Logger getLogger(Class<?> _clazz) {
        //return getLoggerXML(_clazz);
        return configureLogbackDirectly(_clazz, debugMode, logPath);
    }
 
    public static Logger getLoggerXML(Class<?> _clazz) {
        return (Logger) LoggerFactory.getLogger(_clazz);
    }
 
    public static void setDebugMode(boolean _debugMode) {
        debugMode = _debugMode;
    }
 
    public static void setLogPath(String _logPath) {
        logPath = _logPath;
    }
 
    private static Logger configureLogbackDirectly(Class<?> _clazz, boolean _debug, String _logPath) {
        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
        context.reset();
 
        Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
        root.setLevel(Level.ERROR);
        if (_debug)
            root.setLevel(Level.DEBUG);
        root.addAppender(logCat(context));
        if (_logPath != null)
            root.addAppender(logFile(context, _logPath));
 
        return (Logger) LoggerFactory.getLogger(_clazz);
    }
 
    private static RollingFileAppender<ILoggingEvent> logFile(LoggerContext _context, String _filePath) {
        RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<ILoggingEvent>();
        rollingFileAppender.setAppend(true);
        rollingFileAppender.setContext(_context);
 
        rollingFileAppender.setFile(_filePath + "/log.txt");
 
        TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<ILoggingEvent>();
        rollingPolicy.setFileNamePattern(_filePath + "/log.%d.txt");
        rollingPolicy.setMaxHistory(7);
        rollingPolicy.setParent(rollingFileAppender);
        rollingPolicy.setContext(_context);
        rollingPolicy.start();
 
        rollingFileAppender.setRollingPolicy(rollingPolicy);
 
        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setPattern("%date{ISO8601} [%thread] %-5level %logger{0} %msg%n");
        encoder.setContext(_context);
        encoder.start();
 
        rollingFileAppender.setEncoder(encoder);
        rollingFileAppender.setName("rollingFileAppender");
        rollingFileAppender.start();
 
        return rollingFileAppender;
    }
 
    private static LogcatAppender logCat(LoggerContext _context) {
        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setContext(_context);
        encoder.setPattern("[%thread] %msg%n");
        encoder.start();
 
        PatternLayoutEncoder tag_encoder = new PatternLayoutEncoder();
        tag_encoder.setContext(_context);
        tag_encoder.setPattern("%class{0}");
        tag_encoder.start();
 
        LogcatAppender logcatAppender = new LogcatAppender();
        logcatAppender.setContext(_context);
        logcatAppender.setEncoder(encoder);
        logcatAppender.setTagEncoder(tag_encoder);
        logcatAppender.setName("logcatAppender");
        logcatAppender.start();
 
        return logcatAppender;
    }
}
т.е. если в getLogger(Class<?> _clazz) сделать активным метод getLoggerXML(_clazz), то все работает, configureLogbackDirectly(_clazz, debugMode, logPath) - нет.
подскажите, где я накосячил.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru