Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

Логирование+Цветастая консоль

14.04.2020, 12:18. Показов 1875. Ответов 0

Студворк — интернет-сервис помощи студентам
Задача изменить цвета текста для каждого уровня логирования. При чем подгружать конфигурацию из файлов.
Но почему то цвета из файла не подхватываются.

Python
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
import argparse
import traceback
 
import json
import logging
import logging.config
 
import colorama
import colorlog
import time
 
DATA = 25
 
def create_logger():
   with open("logger.json",encoding="utf-8") as f:
       config = json.load(f)
       logging.config.dictConfig(config)
       logging.addLevelName(DATA, 'DATA')
 
       logger = logging.getLogger("App")
       for handler in logger.handlers:
          if type(handler) is logging.StreamHandler:       
            #handler.formatter.log_colors['INFO'] = 'white'
            #handler.formatter.log_colors['DATA'] = 'blue'
            break                 
       return logger            
   return None    
 
def create_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-d', '--delay', type=float, default=1)
    return parser.parse_args()
 
def main():    
    args = create_args()
    logger = logging.getLogger("App")
    
    logger.info("Начало работы.")
    
    logger.log(DATA,"test")
        
    logger.info("Работа завершена.")
 
if __name__ == "__main__":
    colorama.init()
    logger = create_logger()
    try:
        main()
    except KeyboardInterrupt:  # Ctrl+C
        logger.warning('Прервано пользователем')    
    except:
        logger.exception("Возникла ошибка!")
JSON
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
{
    "version": 1,
    "disable_existing_loggers": true,
    
    "formatters": 
    {
        "TimeStampFormatter": 
        {
            "format": "[%(asctime)s] %(message)s (%(levelname)s)",
            "datefmt":"%d.%m.%y %H:%M:%S"
        },
        
        "ColoredFormatter": 
        {
            "class": "colorlog.ColoredFormatter",            
            "format": "%(log_color)s[%(asctime)s] %(message)s (%(levelname)s)",
            "datefmt": "%H:%M:%S",
            "log_colors": { "DATA": "blue", "INFO": "white" }    
        }       
    },  
    
    "handlers": 
    {   
        "StreamHandler": 
        {
            "class": "logging.StreamHandler",
            "formatter": "ColoredFormatter",
            "level": "INFO"
        },      
    
        "FileHandler": 
        {
            "class": "logging.FileHandler",
            "formatter": "TimeStampFormatter",
            "filename": "log.txt",
            "mode": "w",
            "level": "DEBUG"
        }       
    },
    
    "loggers": 
    {
        "App": 
        {
            "handlers": [ "FileHandler","StreamHandler" ],
            "level": "DEBUG"
        }
    }
}
Если расскомменитировать строки #22, #23 в python коде то явная установка работает должным образом,но почему не подхватывается log_colors через logging.config.dictConfig() ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2020, 12:18
Ответы с готовыми решениями:

Подготовить числа для вывода на консоль через ASCII и вывести на консоль
В регистре eax находится число, которое нужно превратить в ASCII-код и вывести на консоль символы, которые соответствуют полученному. ...

Программа выводит ответ и в консоль и в файл, хотя нужно только в консоль
когда выбираю вывести в консоль, программа выводит ответ и в консоль, и в файл #include <stdio.h> #define SIZE 101 ...

Не выводит текст в консоль, открывается пустая консоль без текста
Приложение должно вызывать консоль при выполнении каких то условий. В консоль записывается текст и ReadKey чтобы консоль не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2020, 12:18
Помогаю со студенческими работами здесь

Как открыть консоль или отправить в консоль другого приложения какой то текст
Мне нужно отправить в консоль только что открытого приложения какой то текст как это сделать вызываю я его вот так String^ progPath =...

При компиляции показывается консоль MSBuild затем еще одна консоль и без результата
Когда я компилирую проект C# в Visual studio 2013 открывает MSBuild (консольку) и нечего не пишет не работает после 5 секунд открывает еще...

Ввести в консоль строку, программа должна вывести в консоль слова из этого предложения в столбик
Доброго времени суток! Задание: нужно ввести в консоль строку, а программа должна вывести в консоль слова из этого предложения в столбик ...

Буферизация вывода в консоль, и цветной вывод в консоль
Потребовалось реализовать цветной вывод массивов в консоль(некоторые значения выделить зеленым). Для этого...

Логирование
Здравствуйте! Срочно нужна ваша помощь. Нужно чтобы ЭТО запускалось в отдельном потоке. Чтобы остальная часть программы, вызывающая...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru