Знакомство с библиотекой логирования Pantheios
Сегодня я хотел бы рассказать про библиотеку логирования Pantheios, которая обладает по заверению создателей большой скорость работы, мультипоточностью, поддержкой unicode и одновременного вывода в разные получатели логов.
Знакомство с библиотекой логирования Apache log4cxx
Логирование и тарификация исходящих вызовов для АТС Avaya
В моей компании используется распределенная по территории РФ телефонная сеть с более чем 5000 IP-станций (телефонных аппаратов, используемых сотрудниками). Задачей стояло написание логгера исходящих внешних (направленных в ТфОП) вызовов от внутренних абонентов (включая тандемные вызовы) с последующим добавлением функциональности тарификатора. Внутренние звонки (внутри телефонной сети) и входящие – не интересовали, но описываемый метод сбора информации позволяет обрабатывать и такие типы вызовов. Существует несколько готовых коммерческих решений для тарификации вызовов, некоторые из них нам довелось протестировать в своей компании, но зачастую стоимость этих продуктов не соответствовала уровню удобства использования и качества реализации.
MongodbLogger — складываем логи вашего Rails 3 приложения в MongoDB

Привет всем. Сегодня я поведаю о своей разработке для Rails 3 — MongodbLogger. Начнем по порядку.
Rails приложение по-умолчанию складывает логи запросов в папку logs. Сами по себе логи очень удобная штука — они помогают посмотреть какие запросы идут в ваше приложение, посмотреть trace ошибки и прочее. В них можно дописывать дополнительную информацию. Хотя файловый лог прост и эффективен, но у него есть определенные ограничения: при использовании множество веб-серверова, лог у каждого свой; нет простого доступа. Запись в РСУБД решает вопросы централизации и простого доступа логов, но сразу возникают другие проблемы: схема таблицы не настолько гибка, как может быть структура лога; запись может быть недостаточно быстра; чистка старых логов — задачи на Ваших плечах. И тут на помощь приходит MongoDB.
Logy — логгер с человеческим лицом
Использование:
import static logy.Logy.*;
public class Test {
public void test() {
String s[] = {"a", "b"};
warn("Can't find", quote(upper("c")), "in", group(quote(upper(scalar(s)))));
}
}
Вывод:
29.06.2012 1:19:25 Test.test [WARN] :: Can't find "C" in ["A", "B"]
Как по мне, выглядит очень читабельно, благодаря синтаксическому сахару, DSL-like API и динамическому определению параметров логирования в момент вызова (читай без дополнительных полей
public static final Logger logger = ...
в классе).Небольшой логгер стека вызовов для C++

На написание этого топика меня сподвиг топик "Какие кодотрюки вы знаете?", и я хотел было поделиться данным логгером там, но автор просил «без фанатизма», и желал видеть такие трюки, на понимание которых требуется не больше пяти-десяти секунд, поэтому я решил вынести это дело в отдельный топик, т.к. по-быстрому такое взглядом не окинешь.
Будет рассмотрен небольшой, но иногда довольно полезный класс, плюс небольшой трюк с макросами, позволяющие проводить первичный анализ стека вызовов (call stack) прямо в stdout, в процессе работы программы. Разумеется, на stdout свет клином не сошёлся, и можете перенаправить хоть в файл, хоть куда-нибудь ещё — я лишь демонстрирую общий принцип.
Сразу договоримся:
- злоупотребление макросами — зло
- ничего нового и сверхъестественного в данной статье нет, она будет понятна даже новичку (на них и рассчитана)
- данный приём мало применим (или вообще не применим) в многопоточной среде
- реализация не претендует на идеальность, полноту, и уж тем более уникальность
- данный приём ни в коем случае не заменяет, а лишь дополняет дебаггер
Но если при написании программы вы не раз писали что-то вроде printf(«Entering Foo()\n»); для мониторинга входа в ту или иную функцию, то вы пришли как раз по адресу.
Vader — простой логгер для Dart

Chrome Logger — серверсайд логи в консоли хрома

Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.
Большинство языков включают в себя собственные возможность логирования, но иногда удобнее и проще видеть логи прямо в браузере.
Инструкции по применению инсайд.
Профайлер для Entity Framework

Приветствую!
Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для Entity Framework-а ( далее EF) c 4-й по 6-ю версию, а также о некоторых примененных мной решениях, таких как декомпилирование .NET кода на лету, форма для обработки исключений и прочее.
Nuget пакет для EF6: https://www.nuget.org/packages/EFlogger-For6/
Nuget пакет для EF4 — 5: https://www.nuget.org/packages/EFlogger-For4/
Подробности под катом.
Размазываем PHP

Настанет день, и ты поймешь, что одного потока в PHP тебе мало.
Создаем хардварный логгер клавиатуры

Парочка аппаратных логгеров клавиатуры
Принципы
Для того чтобы сконструировать подобное устройство, сначала нужно разобраться с тем, как же работает клавиатура. Есть два основных типа клавиатур: АТ (старый стандарт) и PS/2. Отличаются они только разъемами: АТ имеет DIN, а PS/2 — miniDIN. Первый — большой круглый разъемчик с пятью штырьками, второй — маленький, как у мышки, с шестью пинами. По протоколу обмена они полностью совместимы. Наверняка, ты видел переходники с широких старых разъемов на новые маленькие. Этот стандарт появился еще в 1984 году вместе с первым персональным компьютером IBM PC и используется по сей день, практически не претерпев никаких изменений.
Сравнение библиотек логирования

В сети огромное количество площадок формата Q&A где задаются вопросы из разряда:
- Предложите С++ логер? (C++ logging framework suggestions)
- Какой наиболее эффективный потоко-безопасный С++ логер? (What is the most efficient thread-safe C++ logger)
- Библиотека логирования для игр (Logging library for c games)
- Асинхронный потоко-безопасный С++ логер? (Asynchronous thread-safe logging in C++)
Люди делятся своим опытом и знаниями, но формат таких площадок позволяет лишь показать личные предпочтения отвечающего. К примеру, одним из самых производительных логеров чаще всего называют Pantheios, который даже по тестам производителя тратит больше 100 секунд на запись 1M строк лога, на современном железе это около 30 секунд, быстро ли это?
В этой статье я сравню наиболее известные и заслуженные логеры последних лет и несколько относительно молодых логеров по более чем 25 критериям.
Аудит изменения данных PostgreSQL

Возникла необходимость вести аудит изменения данных в существующей системе.
Требования:
- Простота подключения/отключения логгирования отдельных таблиц.
- Сократить до минимума изменения в уже существующих функциях БД.
- Минимизировать деградацию производительности.
Реализуем тач логгер под Android с помощью CVE-2016–5195
История о том, как уязвимость в ядре linux помогает мне собирать данные для диссертации
Пару лет назад я решил выяснить, можно ли идентифицировать человека по жестам, которые он вводит на экране смартфона. Некий «клавиатурный почерк», но только для сенсорного экрана. Чтобы это понять, нужно проанализировать сотни тысяч жестов от множества разных пользователей. Но… Как собрать эти данные на смартфоне?
Я расскажу о своём пути решения этой задачи. Он был долгим, тернистым, но чертовски увлекательным! Надеюсь, вам будет интересно проследить за ним и узнать для себя что-то новое о linux, android, их безопасности и их внутренностях. Я не гуру в устройстве linux, поэтому кому-то некоторые объяснения покажутся очевидными и излишне подробными, но повторюсь, это мой путь и я подробно описываю всё, что изучил в процессе. Надеюсь, это не оттолкнёт опытных линуксоидов и немного снизит порог вхождения для всех остальных. Итак. Как же реализовать тач логгер под android?
ArcSight Forwarder Connector. Пошлём куда захотим
В данной статье я поделюсь своим практическим опытом по выгрузке событий из ArcSight ESM. Детально рассмотрю функциональность и предоставлю пошаговую инструкцию по настройке ArcSight Forwarder Connector, а так же опишу интересные лайфхаки.

ScreenLogger – улыбнитесь, вас снимает скрытая камера
ALog: плюс один логгер для C++ приложений

Система логирования ALog первоначально разрабатывалась для использования в серверных приложениях. Первая реализация ALog была выполнена в 2013 году, на тот момент я и подумать не мог, что спустя семь лет буду писать про нее статью на Хабр. Но, видимо, на все воля случая… Сейчас уже и не вспомню, что именно искал на просторах интернета, когда мне на глаза попалась статья Сравнение библиотек логирования. Я решил бегло просмотреть её в ознакомительных целях. По мере знакомства с материалом в голове возникла мысль: "А где же в этом 'табеле о рангах' находится мой логгер?".
Провайдер логирования для Telegram (.NET 5 / .NET Core)

Не секрет, что Telegram является на данный момент одним из самых популярных мессенджеров. Особенно в среде ИТ-специалистов. Он удобен, в нем нет встроенной рекламы и работает весьма стабильно. Довольно большую часть времени я общаюсь как по работе, так и по личным вопросам именно в этом мессенджере. Поэтому в один прекрасный день я подумал о том, что было бы удобно, чтобы в этом же мессенджере я мог получать уведомления о работе некоторых своих сервисов. На тот момент я как раз активно работал над интеграцией проекта //devdigest и Telegram, поэтому используя тот же родной Telegram Bot SDK довольно быстро реализовал логгер.
Несколько дней назад я решил вернуться к этому проекту, слегка почистить и отрефакторить код, а затем выложить его в открытый доступ – быть может возможность получения логов в Телеграм будет полезна кому-то еще. Если этот кто-то – вы, то