powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Какие есть стратегии логирования хода выполнения длительных расчетов?
25 сообщений из 81, страница 3 из 4
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771620
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К чему я это спросил? А к тому, что первое сообщение в данной теме начинается с фразы:
AlekseySQLХочется в случае падения обработки (которая будет работать очень долго) понять почему это произошло.

Но ведь Вы, Алексей, таки понимаете, в чем разница между падением обработки и проведением расследования на платформе Windows и на платформе Linux? Вот бы с чего начать обсуждение по данной проблематике!
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771623
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAPК чему я это спросил? А к тому, что первое сообщение в данной теме начинается с фразы:
AlekseySQLХочется в случае падения обработки (которая будет работать очень долго) понять почему это произошло.

Но ведь Вы, Алексей, таки понимаете, в чем разница между падением обработки и проведением расследования на платформе Windows и на платформе Linux? Вот бы с чего начать обсуждение по данной проблематике!

Еще одни клоун, хорошо характеризующий всю собранную лысым дядькой компанию зверят.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771625
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне прям даже лестно, какой я, оказывается, манипулятор!
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771626
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькамне прям даже лестно, какой я, оказывается, манипулятор!
Таки да! А что делать! Будем манипулироваться под Вашим чутким руководством.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771630
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЕще одни клоун, хорошо характеризующий всю собранную лысым дядькой компанию зверят.
AlekseySQLДа, я опять обосрался. Вы меня, ребята, притормаживайте, когда я начинаю адскую дичь загонять
Вы начинаете адскую дичь загонять. Как Вас можно притормозить в таком случае? Просьбу Вы ранее изложили, а метод не выбрали.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771642
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придумал такой вариант:
1. Все логируемые действия выносятся в отдельные функции, и если необходимо логировать в случае отсутствия ошибки, т.е. на уровне info для них задаются два параметра: success и failer. Например:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
@log_result(log_information=False)    
def _create_connecton(self):
    self.connection = MySQL.Connection()

@log_result(show_in_interface=True)
def _create_table(self, table):
    self.connection.execute(code=table.creating(), need_commit=True)
_create_table.succsess = 'Table %s successfully created!'
_create_table.failer = 'Creating table %s successfully failed!'



2. Пишется декоратор, которым обрамляются все логируемые функции:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
def log_result(log_information=True, show_in_interface=False):
    def deco(func):
        def wrapped(self, *args, **kwargs):
            try:
                returned_value = None
                returned_value = func(self, *args, **kwargs)
            except Exception as err:
                General.exist_error = True
                self.loger.log_data(err)
                raise General.ExistError
            else:
                if log_information:
                    if returned_value:
                        self.loger.log_data(func.success, show_in_interface)
                    else:
                        self.loger.log_data(func.failer, show_in_interface)
        
            return returned_value
        return wrapped
    return deco    



Такой подход позволяет отделить прикладной код от кода логирования (даже сообщения успех/ неудача задаются отдельно). Но в объекте необходимо иметь ссылку на loger, который собственно и будет писать данные в файл. Я решил не пользоваться встроенной библиотекой logging, поскольку некоторые сообщения я хочу также пробрасывать на форму пользователя, чтобы он (а это буду я!) понял, что надо лезть анализировать логи.

Есть предложения по улучшению моего подхода?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771668
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLХочешь сказать ты в этой теме написал что- то содержательное? Ты из этого факта понимаешь, что вся твоя длинная и нудная писанина в первую очередь относится к тебе?Во-первых, мы с Вами в подворотне на брудершафт не выпивали, а потому тыкать в меня не надо, такого повода Вам я не давал.

Во-вторых, по теме исходного вопроса о логгировании я вообще ничего не написал, так как не являюсь компетентным специалистом в данном вопросе.

В третьих, к сожалению, я вынужден констатировать факты, о которых упомянул. Увы, данный форум тоже им подвержен. Как модератор, я вынужден, если не внимательно читать, то, хотя бы, просматривать по возможности все сообщения и вижу общую картину. К сожалению, с течением времени форум становится менее интересным и привлекательным.
Не могу не согласиться с уважаемым Hett в части снижения сложности задач и интересности обсуждаемых вопросов. Однако, чем сложнее вопрос - тем более глубоких познаний и понимания он требует, притом, применительно к конкретному ЯП, фреймворку и т.п. Насчет 99% - перебор, конечно, однако, заметное число вопросов (особенно, по PHP) слишком банальны. Настолько, что в качестве ответа достаточно дать ссылку на документацию. Притом, нередко, это ссылка на какие-то разделы по основам PHP или по конкретной используемой функции. Читали топикстартеры документацию? Вряд ли. Иначе не было бы простейшего вопроса с простейшим ответом. А почему не читали? Ну вот я не знаю, почему.
Отдельные товарищи так и вовсе ведут себя как в личном блоге, изучая программирование методом тыка.
Всё это, увы, совсем не добавляет форуму ни полезности, ни авторитета. Чему может научиться начинающий, чего тут полезного почерпнет?

Надеюсь, понятно изложил свою точку зрения.

И ещё момент. В начале нулевых я довольно долго обретался на форуме по LISP. Обсуждения были там обычно содержательные, предлагались и сравнивались различные способы решения задачи и это было, скорее, обычным явлением, чем исключением. То ли форум другой, то ли эпоха изменилась. Давно там не был.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771672
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleИ ещё момент. В начале нулевых я довольно долго обретался на форуме по LISP. Обсуждения были там обычно содержательные, предлагались и сравнивались различные способы решения задачи и это было, скорее, обычным явлением, чем исключением. То ли форум другой, то ли эпоха изменилась. Давно там не был.
В начале нулевых интернет был у тех, кому он действительно был нужен.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771691
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаВ начале нулевых интернет был у тех, кому он действительно был нужен.Ну почему же? Для частных лиц карточки на поминутный или помегабайтный интернет по телефону свободно продавались (по крайней мере, в Самаре, где я живу, проблем не было). Были какие-то тарифы по долговременному договору на тырнет. Приобресть модем - не проблема. На предприятиях, конечно, были ограничения, но подробностей я не знаю. Думаю, программисты совсем уж без интернета не оставались, судя по постам. Да и посты в форум писали обыкновенные люди, чья деятельность так или иначе связана с компьютерными технологиями. В этом смысле мало что изменилось кардинально.

Однако, мы очень сильно ушли от темы топика. Если есть желание продолжить обсуждение более развернуто, предлагаю создать отдельный топик. Возможно, в другом подфоруме.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771755
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleAlekseySQLХочешь сказать ты в этой теме написал что- то содержательное? Ты из этого факта понимаешь, что вся твоя длинная и нудная писанина в первую очередь относится к тебе?Во-первых, мы с Вами в подворотне на брудершафт не выпивали, а потому тыкать в меня не надо, такого повода Вам я не давал.

Во-вторых, по теме исходного вопроса о логгировании я вообще ничего не написал, так как не являюсь компетентным специалистом в данном вопросе.

В третьих, к сожалению, я вынужден констатировать факты, о которых упомянул. Увы, данный форум тоже им подвержен. Как модератор, я вынужден, если не внимательно читать, то, хотя бы, просматривать по возможности все сообщения и вижу общую картину. К сожалению, с течением времени форум становится менее интересным и привлекательным.
Не могу не согласиться с уважаемым Hett в части снижения сложности задач и интересности обсуждаемых вопросов. Однако, чем сложнее вопрос - тем более глубоких познаний и понимания он требует, притом, применительно к конкретному ЯП, фреймворку и т.п. Насчет 99% - перебор, конечно, однако, заметное число вопросов (особенно, по PHP) слишком банальны. Настолько, что в качестве ответа достаточно дать ссылку на документацию. Притом, нередко, это ссылка на какие-то разделы по основам PHP или по конкретной используемой функции. Читали топикстартеры документацию? Вряд ли. Иначе не было бы простейшего вопроса с простейшим ответом. А почему не читали? Ну вот я не знаю, почему.
Отдельные товарищи так и вовсе ведут себя как в личном блоге, изучая программирование методом тыка.
Всё это, увы, совсем не добавляет форуму ни полезности, ни авторитета. Чему может научиться начинающий, чего тут полезного почерпнет?

Надеюсь, понятно изложил свою точку зрения.

И ещё момент. В начале нулевых я довольно долго обретался на форуме по LISP. Обсуждения были там обычно содержательные, предлагались и сравнивались различные способы решения задачи и это было, скорее, обычным явлением, чем исключением. То ли форум другой, то ли эпоха изменилась. Давно там не был.

Как ты думаешь, у людей, которые видят как участников форума "заклевывают" и модератор помогает в этом деле, появится желание задерживаться на форуме? В этом то и соль: народ терпит этот гадюшник пока есть необходимость что- то узнать, а как только набрались опыта- бегут с подобных токсичных ресурсов.

Вот ты сам говоришь, что уровень дискуссий упал, но в тоже время признаешь, что вопрос логирования является для тебя неизвестным. Так может надо было с самого начала удалять комментарии, которые не позволяют раскрыть тему логирования?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771756
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказалось, что декораторы не подхватывают атрибуты декорируемых функций. Поэтому сохранять в них сообщения об успехах / неудачах не имеет смысла (ведь вся логика отправки сообщений реализована в декораторе, который не видит этих строк).

Поэтому сейчас пришел к более простому в реализации, но менее красивому с точки зрения полученных логов решению: строку сообщения получаю из возвращаемого значения, названия функции и ее параметров:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
def log_result(log_information=True, show_in_interface=False):
    def deco(func):
        def wrapped(self, *args, **kwargs):
            try:
                returned_value = None
                returned_value = func(self, *args, **kwargs)
            except Exception as err:
                General.exist_error = True
                self.loger.log_data(err)
                raise General.ExistError
            else:
                if log_information:
                    if returned_value:
                        message = 'Success: ' 
                    else:
                        message = 'Failer: '
                        
                    message += func.__name__.strip('_') + '\t' + str(*args) + '\t' + str(**kwargs)
                    self.loger.log_data(message, show_in_interface)
            return returned_value
        return wrapped
    return deco  
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771781
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем кто давал советы- спасибо! В результате пришел к такому варианту (слегка "украсил" предыдущий код):

Код: 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.
def message_result(log_information=True, show_in_interface=False):
    def deco(func):
        def wrapped(self, *args, **kwargs):
            try:
                returned_value = None
                returned_value = func(self, *args, **kwargs)
            except Exception as err:
                General.exist_error = True
                self.loger.log_data(err)
                raise General.TerminateException
            else:
                if log_information:
                    position_parameters = str(*args)    
                    named_parameters = str(**kwargs)
                    if position_parameters and named_parameters:
                        parameters = position_parameters + ', ' + named_parameters
                    else:
                        parameters = position_parameters + named_parameters
                        
                    message = str(returned_value) + ' ' + func.__name__.strip('_') + '(' + parameters + ')\n'
                    self.loger.log_data(message, show_in_interface)
            return returned_value
        return wrapped
    return deco 



Этот мега- декоратор позволяет достаточно просто логировать данные. Для этого у экземляра объекта (или класса) должен быть член loger с методом log_data.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771805
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL_2Как ты думаешь,Ещё раз, конкретно для Вас лично: повода тыкать я Вам не давал.
Это я Вам понятно изложил? Судя по тому факту, что лично для Вас приходится простые вещи уровня детского садика объяснять повторно, у меня есть подозрение, что как-то не совсем понятно.

AlekseySQL_2у людей, которые видят как участников форума "заклевывают" и модератор помогает в этом делеНу Вы как в детском саде, ей Богу. Вас надо учить общаться? Извините, вот мне не хочется. Вас, простите, "заклевывают" - где и как? Вы сами избрали для себя такую роль своим же поведением.

Вам что-то ответили. Ответ может быть "в тему" или "не в тему". Ответов "не в тему", притом, без злого умысла, довольно много, кстати, так как вопросы, порой, весьма неоднозначно трактуются. Что можно сделать с ответом "не в тему"?

Проигнорировать - наверно, самое простое. Вообще ничего не делать. Нет ответа - нет продолжения развития "не в тему".

Можно аргументировано ответить вроде: "Вы ошибаетесь. Автор такой-то в книге такой-то изложил метод или способ, но мне он не подходит потому что <объясняете, почему не подходит>. Другой автор в другой книге описал способ, но в моем случае он неприемлем потому что <почему именно>.".

Вы избрали не слишком удачный для Вас вариант выяснения кто тут прав, а кто не прав: AlekseySQLЛысый дядькаВ общем, не прошло и месяца с начала вашей бурной деятельности, а учебник так и не был открыт.

Мой вопрос говорит о том, что я признаю неполноту своих знаний, а твой ответ- уверенность в полноте твоих знаний. Кто из нас прав? По- моему, ответ очевиден.Притом, дальнейший разговор ведете в ещё более жестком ключе:AlekseySQLТы психически болен.У Вас есть какое-то образование в области психологии, чтобы делать такие утверждения? Не знаю, предположим, что у Вас за плечами есть соответствующая кафедра института. Если есть основания - аргументируйте Ваше утверждение. Иначе оно переходит в разряд "сам дурак". Ну а далее Вы начинаете клевать Лысого дядьку и откровенно хамить:AlekseySQLТы ничтожество потому что подначиваешь гнобить человека и радуешься своей деятельности. Ты- человеческий мусор.

Вопрос: что тут происходит?
Для меня, как для модератора, ответ очевиден: В ответ на предложение почитать книгу по теме, Вы пишите оскорбляющие сообщения. Правила форума явным образом запрещают это делать.
Возможно, Вы не читали правила форума. Рекомендую ознакомиться.

Понятно изложил?

Как модератор, предлагаю Вам извиниться перед участниками форума и продолжить обсуждение без склок.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39771842
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL_2Вот ты сам говоришь, что уровень дискуссий упал, но в тоже время признаешь, что вопрос логирования является для тебя неизвестным. Так может надо было с самого начала удалять комментарии, которые не позволяют раскрыть тему логирования?Именно потому, что я, как указал выше, не являюсь компетентным специалистом в особенностях ЯП Python (кстати, правила рекомендуют указывать ЯП в названии темы), я не могу судить о том, рассмотрен ли данный вопрос или доступные методы/способы его решения в документации по используемому ЯП, в каждой ли книжке или через одну они так или иначе освещены или нигде и никак не раскрыты вовсе.

Однако, как высказался выше, нередко (не значит, что всегда) ответы лежат буквально на поверхности, где-то в основах. Таким образом, предложение прочитать документацию/книгу/учебник я никак не могу отнести к сообщениям "не по теме".

Вам предложили прочитать книги Марка Лутца. Посмотрел, какие есть книги этого автора. Мужик, наверняка, толковый, если ему есть что сказать в толстых многотомных изданиях. На его книги ссылаются, как на полезные. Притом, как для начального, так и для углубленного изучения ЯП. Считаю, есть смысл перенять хотя бы часть его знаний.

Так и что удалять предлагаете - Ваши хамские посты или предложения в Ваш адрес успокоиться и извиниться? Уточните.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772011
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleAlekseySQL_2Вот ты сам говоришь, что уровень дискуссий упал, но в тоже время признаешь, что вопрос логирования является для тебя неизвестным. Так может надо было с самого начала удалять комментарии, которые не позволяют раскрыть тему логирования?Именно потому, что я, как указал выше, не являюсь компетентным специалистом в особенностях ЯП Python (кстати, правила рекомендуют указывать ЯП в названии темы), я не могу судить о том, рассмотрен ли данный вопрос или доступные методы/способы его решения в документации по используемому ЯП, в каждой ли книжке или через одну они так или иначе освещены или нигде и никак не раскрыты вовсе.

Однако, как высказался выше, нередко (не значит, что всегда) ответы лежат буквально на поверхности, где-то в основах. Таким образом, предложение прочитать документацию/книгу/учебник я никак не могу отнести к сообщениям "не по теме".

Вам предложили прочитать книги Марка Лутца. Посмотрел, какие есть книги этого автора. Мужик, наверняка, толковый, если ему есть что сказать в толстых многотомных изданиях. На его книги ссылаются, как на полезные. Притом, как для начального, так и для углубленного изучения ЯП. Считаю, есть смысл перенять хотя бы часть его знаний.

Так и что удалять предлагаете - Ваши хамские посты или предложения в Ваш адрес успокоиться и извиниться? Уточните.

Если незнание языка Python не позволяет тебе профессионально модерировать данный ресурс, то зачем ты этим занимаешься?

Насчет Лутца: с удовольствием прочитаю его книгу (да и другие тоже), если напишешь страницу на которой рассмотрен вопрос логирования. Если посмотришь историю моих сообщений, то я достаточно часто привожу ссылки на книги с указанием номера страниц, на которых рассмотрен тот или иной вопрос (так что этот камень явно не в мой огород). А пока подобного уточнения нет, ты и я отлично понимаем, что это по сути посыл человека на х.й. И непонятно почему ты защищаешь участников форума, которые посылают других?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772026
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle...
Ну Вы как в детском саде, ей Богу. Вас надо учить общаться? Извините, вот мне не хочется. Вас, простите, "заклевывают" - где и как? Вы сами избрали для себя такую роль своим же поведением.

Вам что-то ответили. Ответ может быть "в тему" или "не в тему". Ответов "не в тему", притом, без злого умысла, довольно много, кстати, так как вопросы, порой, весьма неоднозначно трактуются. Что можно сделать с ответом "не в тему"?

Проигнорировать - наверно, самое простое. Вообще ничего не делать. Нет ответа - нет продолжения развития "не в тему".
...


Я правильно понимаю, что вы как модератор отказываетесь выполнять свои функции, рассчитывая на то, что люди будут игнорировать сообщения "не в тему"?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772033
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL_2,

Дорогой Алексей!
Вы, честно говря, несколько заколебали своей простотой. Давайте начнем с того, что Лутца я вам рекомендовал читать, после того, как вы заявили своё желание декорировать отдельные строки кода. Эти ваши случайные слова наглядно демонстрируют ваше знание питона - вы, по крайней мере до момента написания поста, понятия не имели как работают декораторы и зачем они нужны. Именно это я и констатировал - учебник вы не читали. И на каждый вашу следущую глупость я буду реагировать именно так, и моя реакция есть следствие того, как вы усирались, доказывая лично мне, что именно вы как никто другой разбираетесь в дизайне языков программирования, умеете писать чистый код и вообще много и глубоко знаете в прграммировании. За эту вашу самоуверенность и норсорожью упертость я буду тыкать вас носом у чебник при каждой вашем появлении на форуме.

А теперь мы разберем текущий топик по строкам. Ваш стартовый пост:
авторЛогирование отдельных строк сильно испортит код, а логирование целых функций можно сделать с помощью декораторов. Но:
а) В случае падения мы потеряем весь лог, полученный при работе функции и разобраться в причинах падения будет сложно.

То есть вы с самого начала хотели логгировать построчное выполнение кода. Для этого вы выдумывали декораторы строк и построчные комментарии. Что же мы видим в конце ваших изысканий?
"В результате пришел к такому варианту" (с)
Отлично! Вы пришли к варианту, который вашу изначальную задачу не решает от слова совсем. Давайте посмотрим, что вам предлагал я вот здесь 21804675 . Даже не зная языка абсолютно, невооруженным глазом видно, что это есть ровно то, что вы заявляли в стартовом посте. За это я получил поток оскорблений, а мое решение названо оффтопом.
У тут, собственно, вопрос - у вас шизофрения? Я так полагаю, и это мнение уже высказывалось, что вы ходите сюда просто потрепаться, вам не нужны решения, ответы, советы. Вам нужен срач. Так вот: срача не будет и вас тут не будет. Вы уже, видимо, поняли, что я это умею.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772035
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядька, ты же вроде ушел, когда на мое сообщение, что ты выродок и мне не нужна твоя "помощь", ответил "AlekseySQL, ну как хочешь". Получается ты это про себя написал?

Лысый дядькаЭтот человек ходит сюда не за советом, а просто потому что ему не с кем поговорить за ИТ. Программистом он не работает, по специальности не учится, он энтузиаст самоучка, что, безусловно, похвально, но у него есть потребность кому-то рассказать о том, как он крут и начитан. Его друзьям это не надо, родителям и родственникам тоже пофигу, да с ними и неинтересно. Вот и нашел себе человек площадку для бесед на отвлеченные темы, а вдруг оказалось, что он вовсе не крут и не очень то начитан. А критику воспринимать не готов, то ли в силу малого возраста, то ли мозгов маловато. Ему на ПТ, но ПТ джудж слил. Его, конечно, жалко, но что теперь делать? Это, как правильно заметили, форум специалистов, а не лига помощи скучающим подросткам.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772050
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL_2,

Ну это же не учебник Лутца, это форум, его даже качать не надо. Почитайте еще раз, только внимательно, на что конкретно я вам ответил "ну как хочешь".
Но на самом деле это не важно. Мы на форуме и у форума есть конкретная тема, которая важнее всех остальных перепалок. Итак, скажите еще раз, только внятно и разборчиво, без обвинения меня в фашизме: модуль trace из стандартной библиотеки питона решает вопрос построчного логгирования хода выполнения программы или нет?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772102
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLХочется в случае падения обработки (которая будет работать очень долго) понять почему это произошло. Поэтому решил внедрить логирование текущего хода работы.

Есть две основные дилеммы:

1. Красота кода / полнота лога.
Можно было бы создать отдельный слой бизнес- логики, на котором происходит логирование, но в этом случае я не увижу деталей (поскольку на таком верхнем уровне можно только в целом сказать: то- то сделать удалось / не удалось). Но если реализовывать на уровне прикладной логики, то за всеми этими сообщениями об ошибках / успехах не видно основной логики и потому уродуется код.

2. Красота кода / отказоустойчивость лога
Логирование отдельных строк сильно испортит код, а логирование целых функций можно сделать с помощью декораторов. Но:
а) В случае падения мы потеряем весь лог, полученный при работе функции и разобраться в причинах падения будет сложно.
б) Долго работающая функция из- за подобного лога отъест много памяти.

Что используете?

Стратегий логирования есть только две: логировать и не логировать.
Так что бери логирующий фреймворк что доступен в твоей архитектуре и вперёд.


Логирование отдельных строк сильно испортит код, а логирование целых функций можно сделать с помощью декораторов.

Да логируй хоть как-то , ничто ничего не испортит.

а) В случае падения мы потеряем весь лог, полученный при работе функции и разобраться в причинах падения будет сложно.

что за логи-то у тебя такие, которые теряются? Что за бредняк? Нет таких логов... Если у тебя так -- бери другую библиотеку логирования. Логирование должно быть синхронным и с flush-ем.

б) Долго работающая функция из- за подобного лога отъест много памяти.


Логирование не есть память. Только замедляет работу немного.
Но у тебя дилемма простая: "сделать медленнее с логированием и что-то понимать", " не сделать вообще без логирования и нихрена не понимать что происходит".
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772114
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядькаAlekseySQL_2,

Ну это же не учебник Лутца, это форум, его даже качать не надо. Почитайте еще раз, только внимательно, на что конкретно я вам ответил "ну как хочешь".
Но на самом деле это не важно. Мы на форуме и у форума есть конкретная тема, которая важнее всех остальных перепалок. Итак, скажите еще раз, только внятно и разборчиво, без обвинения меня в фашизме: модуль trace из стандартной библиотеки питона решает вопрос построчного логгирования хода выполнения программы или нет?

Что такая скучная жизнь, раз не можешь спокойно уйти из моей темы?
У Лутца книги размером 1280, 992 и 993 страниц. Но дело не в этом, а в том, что программирование не изучается теоретически. И ты это отлично знаешь и потому тут в качестве ржача тыкаешь этими книгами, в ни одном из которых не рассмотрен вопрос из топика. Тоже касается твоего trace: прочитай топик и подумай решает ли это поставленную задачу.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772122
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧто такая скучная жизнь, раз не можешь спокойно уйти из моей темы?
Моя жизнь - не предмет обсуждения, я же не задаю на форумах вопросы, как мне справится со своей жизнью.

AlekseySQL_2Тоже касается твоего trace: прочитай топик и подумай решает ли это поставленную задачу.
Я крепко подумал и решил, что таки ДА, решает. Вы хотели получить построчный трейс программы, для этих целей вы изобретали декораторы строк, спецкомментарии и даже препроцессор. Модуль трейс делает ровно то, что вы хотели - трассирует программу. Теперь вы должны ответить, почему это решение вас не устраивает. Так работает вообще любой разговор - вопрос -> ответ, теза -> антитеза, утверждение ->согласие или контрутверждение. Создается ощущение, Алексей, что вы не хотите принимать решение потому, что его вам дал именно я. Но оно то от этого не стало хуже. Вперед, Алексей, хватит образцово показательно тупить.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772124
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivчто за логи-то у тебя такие, которые теряются? Что за бредняк? Нет таких логов... Если у тебя так -- бери другую библиотеку логирования. Логирование должно быть синхронным и с flush-ем.

б) Долго работающая функция из- за подобного лога отъест много памяти.

Логирование не есть память. Только замедляет работу немного.
Но у тебя дилемма простая: "сделать медленнее с логированием и что-то понимать", " не сделать вообще без логирования и нихрена не понимать что происходит".

Спасибо, за беседу по теме.
Тут подразумевалось, что если я логирую выполнение всей функции ЦЕЛИКОМ (чтобы ради красоты вынести весь код в декоратор) то должен накапливать лог- сообщения этой функции в какую- то коллекцию. Поэтому если в течении выполнения этой функции появится ошибка, то мы потеряем уже накопленные сообщения + коллекция с сообщениями может вырасти в размерах.

Если же начинаем сразу логировать отдельные строки, то это портит код. Собственно поэтому дихотомия задана как "Красота кода / отказоустойчивость лога".

Сейчас я остановился на решении с выносом всех логируемых операций в отдельные функции и использование декораторов.
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772128
AlekseySQL_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядькаВы хотели получить построчный трейс программы....

Где я этого хотел? Модератор, неужели ты не видишь, что этот троллинг растянулся на три страницы? Начни работать по своей прямой обязанности. Ты понимаешь, что именно из- за тебя на на форуме невозможно обсуждать серьезные вопросы и люди уходят?
...
Рейтинг: 0 / 0
Какие есть стратегии логирования хода выполнения длительных расчетов?
    #39772140
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL_2Где я этого хотел? Модератор, неужели ты не видишь, что этот троллинг растянулся на три страницы? Начни работать по своей прямой обязанности. Ты понимаешь, что именно из- за тебя на на форуме невозможно обсуждать серьезные вопросы и люди уходят?

Тише, Алеша! Выпейте галоперидолу, посчитайте до тысячи глубоко дыша и успокойтесь. Теперь давайте вместе (можно даже привлечь широкую общественность в качестве арбитров) почитаем, что же вы писали нам намедни:

AlekseySQL Логирование отдельных строк сильно испортит код, а логирование целых функций можно сделать с помощью декораторов.
AlekseySQLЯ спрашиваю существуют ли языковые средства, чтобы это сделать [Логирование отдельных строк].
AlekseySQLЯ сейчас в качестве оптимального решения вижу комментарий, расположенный на строке логируемого кода или декоратор перед строкой кода . Это позволит логировать детально

Алексей, нука соберитесь!!! Вы сможете, вы преодолеете!
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Какие есть стратегии логирования хода выполнения длительных расчетов?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]