Логи
Я пришел к выводу, что осмысленно выбрать уровни логов (log4j, log4net) в вызовах внутри программы при разработке невозможно.
Всегда возникнет ситуация, в которой конкретно вот сейчас, без перезагрузки сервиса надо сменить уровень лога в данном конкретном методе.
Делать отдельные логгеры на каждый чих и конфигурировать их - это адский комбинаторный взрыв, конфиги становятся нечитабельными, когда там в xml пытаются засунуть то, что должно быть матрицей M(логгеров)*N(аппендеров), а еще лучше такой же матрицей, только с иерархией (общий, группа логгеров, логгер) по одной оси и аналогично для аппендеров по другой.
Кажется, надо просто логи складывать в очереди и фильтровать их по уровням не на этапе создания, а на этапе чтения. Возможно, разве что уберотладочные на каждую букву в каком-нибудь парсере с конечным автоматом отсеивать, и то не факт.
Всегда возникнет ситуация, в которой конкретно вот сейчас, без перезагрузки сервиса надо сменить уровень лога в данном конкретном методе.
Делать отдельные логгеры на каждый чих и конфигурировать их - это адский комбинаторный взрыв, конфиги становятся нечитабельными, когда там в xml пытаются засунуть то, что должно быть матрицей M(логгеров)*N(аппендеров), а еще лучше такой же матрицей, только с иерархией (общий, группа логгеров, логгер) по одной оси и аналогично для аппендеров по другой.
Кажется, надо просто логи складывать в очереди и фильтровать их по уровням не на этапе создания, а на этапе чтения. Возможно, разве что уберотладочные на каждую букву в каком-нибудь парсере с конечным автоматом отсеивать, и то не факт.
no subject
no subject
Только не облако, а словарь типа "поле: значение" и потом по ним фильтровать.
no subject
no subject
no subject
И таки делать имитацию этого средствами log4х - неудобненько.
no subject
Чота я не вижу проблемы.
no subject
no subject
no subject
no subject
no subject
На клиентах до 10 мег, на сервере до 100 мег.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
И собирает единомышленников!
no subject
no subject
(Метаязык описания состояния процесса ннада? убер-стек-трейс. Как свойство языка, понятное дело, чтоб без лишних телодвижений. может получиться забавно.)
no subject
При желании можно пофильтровать как душе угодно.
no subject
no subject
А вообще очень сильно не помешало бы - ссылаться из лога прямо на место в *.pdb, да еще и с областями памяти локальных переменных.
no subject
no subject
no subject
Полноценный трейсинг незавимый то там есть, но пользоваться им, это как всем остальным дотнетом - вроде есть, но сделано криво и неудобно.
no subject
no subject
Вот эти все trace - нахер не нужны в 99% случаев, но если оно где-то упало в конце - неплохо бы поиметь их все, с самого начала, на всю обработку запроса.
Если бы лог был бы древовидный, это все можно было бы неплохо завернуть. Включая, вероятно, и твою задачу - включить логирование всего для такого-то метода на время, вместе с трейсами.
no subject
no subject
no subject
что после какого-то времени, её можно было "законсервировать" без конфликтов,
то получилось бы вполне годная штука.
С другой стороны, для логов в базе данных, их деревянность почти ничего не усложнит и не сильно замедлит.
Кроме того, что для каких-то случаев обработки, они принципиально сложнее.
no subject
Если всё вышло ок, ниже какого-то уровня ничего не выводится, а если фейл - выводятся
+ путь из scope-ов
Ну и соот-но можно временно для конкретного scope или пути включить логирование всего подряд
no subject
Пишешь
var result = ctx.Run("Querying API", () => api.Query("http://a.com"));
И в лог срется типа
Starting Querying API
... тут всякое вложенное с отступом
Done Querying API in 13 sec.
no subject
no subject
В таком случае, придётся отказаться от чего-то типа "paranoid"-уровня логов —
будет просто чрезмерно для обычных случаев засирать.
Впрочем, я очень не уверен, нужно ли такое.
no subject
no subject
no subject
no subject
На практике - ну не писать эти данные в логи, делов то.
no subject
Так вот даже в такой ситуации умные люди не постеснялись туда регекс впаять, который >10 последовательных цифр крестиками заменяет - номера кредиток отфильтровывать. Чтобы еще больше тормозило.
Впрочем, стоит заметить, когда у тебя каждый вход и каждый выход лежит на диске, аккуратно по папочкам - дебаггер особо включать даже и не надо.
no subject
no subject
А если есть - то там нет админских прав.
no subject
Да и по большому счету, вот логи, право читать их программисту как-то кто-то дал же, почему не дать право на подебагать?
no subject
no subject