|
3 / 3 / 0
Регистрация: 16.08.2013
Сообщений: 44
|
|
Игнорируется запись в лог и чтение конфигов27.11.2020, 21:24. Показов 1353. Ответов 4
Предыстория:
Есть класс А, в конструкторе которого которого происходит инициализация логера и загрузка конфигов. Есть класс Б, который внутри в определенном методе создает и использует объект класса А Есть класс С, в конструктор которого передается объект класса Б и используется там Мистика: Пишем1: а = А() - все шикарно, логи пишутся, конфиги грузятся Пишем2: б = Б() и вызываю метод X, в котором есть а = А() - все шикарно, для А свои логи пишутся, свои конфиги грузятся Пишем3: б = Б() с = С(б) Вызываю метод класса C, назовем ХХ, в котором вызывается метод X в котором есть а = А() -ВСЕ ПЛОХО. Расследование Иду в дебаг, смотрю. Все хорошо передалось, попадаю из С в метод Б, где есть строка с а = А() (идентичная Пишем1)). Оттуда попадаем в конструктор А. И тут начинают происходить очень странные дела. Логер инициализируется без ошибок, делает лог, о том что А стартовало.... но в файле с логами строка не появляется! Т.е. оно как бы делает, но как бы нет. Дальше - страньше. Конфиги, которые грузятся при простом создании объекта, просто не грузятся, config.sections() выдает []... опять же, без каких-либо ошибок до этого.... Если заменить загрузку конфига на хардкод и забить на конфиги, в остальном все работает на ура Вопрос Что это такое и что с этим делать? В питоне может есть какие-то фишки? Как вообще можно объяснить игнорирования строки self.logger.debug("А was started")? При условии что это рабочий код, при простом создании объекта все работает как часы. То же самое с конфигом? Как можно при простом создании грузить, а при создании внутри клсса внутри класса уже просто игнорировать наличие файла, если ничего не менялось ни в коде, ни в расположении файла, только в месте вызова. У кого есть идеи?
0
|
|
| 27.11.2020, 21:24 | |
|
Ответы с готовыми решениями:
4
Чтение stdout и периодическая запись в лог Вход в учётную запись игнорируется Чтение из лог-файла |
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 28.11.2020, 09:30 | |
|
sonea, ты бы привел усеченный код (оставив только то, что касается проблемы). Нужно посмотреть как ты логируешь, в файл пишешь, как классы организованы... Засада в мелочи может быть.
Подозрение падает на - в предке С (т.е. Б) - создается а = А() - и в самом С - создается а = А()
0
|
|
|
3 / 3 / 0
Регистрация: 16.08.2013
Сообщений: 44
|
|||||||||||
| 28.11.2020, 23:24 [ТС] | |||||||||||
|
Значит так, путем героических усилий был установлен корень зла. Делюсь результатами для завершения гештальта
Перед тем как создать объект А (в котором были проблемы с логами и т.д.), я вызываю вот какую функцию (раз в день архивируем)
И тут, собственно, все встало на свои места: os.chdir всему виной (логи по итогу писались именно в папку с файлами, а не туда, куда надо) Если доработать функцию:
Осталось у меня только два вопроса: 1. Я пыталась прописывать абсолютные пути к логу и конфигам и это не помогло... в моем мире, даже если os.chdir нашалил, у нас есть абсолютный путь и код ОБЯЗАН его найти. Не? 2. Изначально эти 3 класса были одним большим. И тогда все работало, хотя папка, в которой проводим архивацию, точно так же не совпадала с местом конфигов\логов... Почему, когда код был в одном большом классе, все работало , а при разбиении на 3 класса уже пошли какие-то странности?
0
|
|||||||||||
|
3 / 3 / 0
Регистрация: 16.08.2013
Сообщений: 44
|
|
| 29.11.2020, 20:51 [ТС] | |
|
Так, ну поняла ответ на 2-й вопрос. Так то там был один логгер и один конфиг, которые благополучно грузились/инициализировались ДО os.chdir и все работало. Логично. Остается вопрос, почему, если передавать в логгер и конфигПрасер АБСОЛЮТНЫЕ пути, оно все же не находило
0
|
|
| 29.11.2020, 20:51 | |
|
Помогаю со студенческими работами здесь
5
Чтение лог-файла, когда он занят Чтение текстового лог-файла стороннего приложения Запись в лог Запись в лог Запись в лог Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|