Pull to refresh

Логирование по-быстрому

Reading time 2 min
Views 1K
Silverlight *
Потребовалось тут отследить актуальное состояние часто меняющегося элемента. Было подозрение, что его кто то обнуляет. Сразу же отмел варианты с написанием логирования через файловую систему: Сильверлайту не разрешено писать, куда ему захочется. Поэтому был написан небольшой расширяющий метод, который выводит отладочную информацию в консоль браузера.
Код метода
Total votes 2: ↑2 and ↓0 +2
Comments 2

Знакомство с библиотекой логирования Pantheios

Reading time 5 min
Views 4.9K
C++ *
Всем так или иначе приходилось встраивать в свою программу систему логирования. Многие пишут свою, т.к. считают что умнее других её наиболее оптимальной. Другие же используют готовые библиотеки, которые могут сильно упростить жизнь.

Сегодня я хотел бы рассказать про библиотеку логирования Pantheios, которая обладает по заверению создателей большой скорость работы, мультипоточностью, поддержкой unicode и одновременного вывода в разные получатели логов.
читать далее о Pantheios
Total votes 19: ↑16 and ↓3 +13
Comments 20

Знакомство с библиотекой логирования Apache log4cxx

Reading time 6 min
Views 7.1K
C++ *
Чуть ранее мы рассмотрели библиотеку логирования Pantheios. Пришла очередь ознакомится с более известной Apache log4cxx. Библиотека является имплементаций принципов и механизмов из log4j (библиотека логирования Java) на языке C++. Проект выглядит «мертвым», по крайней мере круных изменений в течение последнего года не наблюдается, впрочем это не повод не посмотреть (а может быть и использовать) эту библиотеку.

Интересно? Тогда продолжим...
Total votes 17: ↑13 and ↓4 +9
Comments 17

Логирование и тарификация исходящих вызовов для АТС Avaya

Reading time 5 min
Views 19K
Development of communication systems *
Sandbox
Хочу поделиться опытом настройки логирования вызовов в корпоративной телефонной сети, построенной на базе решений Avaya Aura (под управлением Communication Manager – далее CM). Данные собираются на основе CDR (Call Detail Recording). Эта статья носит обзорный характер, в ней я описываю основные принципы решения возникшей задачи.
В моей компании используется распределенная по территории РФ телефонная сеть с более чем 5000 IP-станций (телефонных аппаратов, используемых сотрудниками). Задачей стояло написание логгера исходящих внешних (направленных в ТфОП) вызовов от внутренних абонентов (включая тандемные вызовы) с последующим добавлением функциональности тарификатора. Внутренние звонки (внутри телефонной сети) и входящие – не интересовали, но описываемый метод сбора информации позволяет обрабатывать и такие типы вызовов. Существует несколько готовых коммерческих решений для тарификации вызовов, некоторые из них нам довелось протестировать в своей компании, но зачастую стоимость этих продуктов не соответствовала уровню удобства использования и качества реализации.
Читать дальше →
Total votes 3: ↑2 and ↓1 +1
Comments 6

MongodbLogger — складываем логи вашего Rails 3 приложения в MongoDB

Reading time 2 min
Views 2.6K
Ruby on Rails *
image

Привет всем. Сегодня я поведаю о своей разработке для Rails 3 — MongodbLogger. Начнем по порядку.

Rails приложение по-умолчанию складывает логи запросов в папку logs. Сами по себе логи очень удобная штука — они помогают посмотреть какие запросы идут в ваше приложение, посмотреть trace ошибки и прочее. В них можно дописывать дополнительную информацию. Хотя файловый лог прост и эффективен, но у него есть определенные ограничения: при использовании множество веб-серверова, лог у каждого свой; нет простого доступа. Запись в РСУБД решает вопросы централизации и простого доступа логов, но сразу возникают другие проблемы: схема таблицы не настолько гибка, как может быть структура лога; запись может быть недостаточно быстра; чистка старых логов — задачи на Ваших плечах. И тут на помощь приходит MongoDB.

Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 36

Logy — логгер с человеческим лицом

Reading time 4 min
Views 2.8K
Open source *Java *
Некоторое время назад мне пришла в голову идея сделать логирование в Java более дружелюбным, простым и в тоже время достаточно гибким в настройке. Такие требования справедливы пожалуй, в средних и малых проекта, где можно обойтись без громоздкого log4j. Буквально за неделю, идея переросла в простенькую Java библиотеку с ни менее простым названием — 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 = ... в классе).
Но и это еще не все.
Total votes 38: ↑27 and ↓11 +16
Comments 42

Небольшой логгер стека вызовов для C++

Reading time 5 min
Views 22K
Website development *C++ *

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

Будет рассмотрен небольшой, но иногда довольно полезный класс, плюс небольшой трюк с макросами, позволяющие проводить первичный анализ стека вызовов (call stack) прямо в stdout, в процессе работы программы. Разумеется, на stdout свет клином не сошёлся, и можете перенаправить хоть в файл, хоть куда-нибудь ещё — я лишь демонстрирую общий принцип.

Сразу договоримся:
  1. злоупотребление макросами — зло
  2. ничего нового и сверхъестественного в данной статье нет, она будет понятна даже новичку (на них и рассчитана)
  3. данный приём мало применим (или вообще не применим) в многопоточной среде
  4. реализация не претендует на идеальность, полноту, и уж тем более уникальность
  5. данный приём ни в коем случае не заменяет, а лишь дополняет дебаггер

Но если при написании программы вы не раз писали что-то вроде printf(«Entering Foo()\n»); для мониторинга входа в ту или иную функцию, то вы пришли как раз по адресу.
Поехали!
Total votes 63: ↑56 and ↓7 +49
Comments 38

PuperGrep — логи в браузере в реальном времени

Reading time 2 min
Views 12K
Website development *Node.JS *
Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

Скриншот PuperGrep

Возможности и демо
Total votes 82: ↑76 and ↓6 +70
Comments 29

Vader — простой логгер для Dart

Reading time 3 min
Views 7.9K
Programming *Dart *
Несколько дней назад я решил пощупать в каком состоянии на данный момент находится представленный некоторое время назад язык Dart. Самый простой, на мой взгляд, способ попробовать возможности языка — это написать на нем нечто простое и законченное. Недолго думая, я решил написать простенький логгер для Dart в объектно-ориентированном стиле. Под катом изложено мое впечатление от Dart и краткое описание того, что получилось.
Хочу!
Total votes 12: ↑8 and ↓4 +4
Comments 16

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

Reading time 1 min
Views 33K
Website development *PHP *Django *


Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.

Большинство языков включают в себя собственные возможность логирования, но иногда удобнее и проще видеть логи прямо в браузере.

Инструкции по применению инсайд.
Читать дальше →
Total votes 75: ↑71 and ↓4 +67
Comments 27

Профайлер для Entity Framework

Reading time 22 min
Views 24K
Programming *.NET *
Tutorial


Приветствую!

Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для 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/

Подробности под катом.
Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Comments 13

Создаем хардварный логгер клавиатуры

Reading time 13 min
Views 48K
Programming microcontrollers *
У тебя наверняка не раз возникала ситуация, когда программные логгеры клавы не могли решить поставленных задач. Например, отловить пароль от биоса с помощью программного кейлоггера, загружаемого системой, невозможно. Лично я столкнулся с подобной проблемой, когда мне нужно было узнать админский пароль в локальной сети одной фирмы. Тогда я и подумал, что было бы очень круто сделать «железный» логгер, который бы подключался между клавиатурой и компьютером и ловил все нажатые клавиши, начиная с включения компьютера. В предлагаемой статье изложены принципы работы PS/2 интерфейса, и перехват данных, передаваемых по нему.

image
Парочка аппаратных логгеров клавиатуры

Принципы


Для того чтобы сконструировать подобное устройство, сначала нужно разобраться с тем, как же работает клавиатура. Есть два основных типа клавиатур: АТ (старый стандарт) и PS/2. Отличаются они только разъемами: АТ имеет DIN, а PS/2 — miniDIN. Первый — большой круглый разъемчик с пятью штырьками, второй — маленький, как у мышки, с шестью пинами. По протоколу обмена они полностью совместимы. Наверняка, ты видел переходники с широких старых разъемов на новые маленькие. Этот стандарт появился еще в 1984 году вместе с первым персональным компьютером IBM PC и используется по сей день, практически не претерпев никаких изменений.
Читать дальше →
Total votes 230: ↑212 and ↓18 +194
Comments 84

Сравнение библиотек логирования

Reading time 26 min
Views 61K
C++ *
Sandbox


В сети огромное количество площадок формата 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 критериям.
Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Comments 42

Аудит изменения данных PostgreSQL

Reading time 4 min
Views 28K
PostgreSQL *SQL *
Sandbox
image

Возникла необходимость вести аудит изменения данных в существующей системе.

Требования:


  • Простота подключения/отключения логгирования отдельных таблиц.
  • Сократить до минимума изменения в уже существующих функциях БД.
  • Минимизировать деградацию производительности.

Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Comments 27

Реализуем тач логгер под Android с помощью CVE-2016–5195

Reading time 16 min
Views 8.3K
Information Security *Development for Android *Development for Linux *
Sandbox

История о том, как уязвимость в ядре linux помогает мне собирать данные для диссертации


Пару лет назад я решил выяснить, можно ли идентифицировать человека по жестам, которые он вводит на экране смартфона. Некий «клавиатурный почерк», но только для сенсорного экрана. Чтобы это понять, нужно проанализировать сотни тысяч жестов от множества разных пользователей. Но… Как собрать эти данные на смартфоне?

Я расскажу о своём пути решения этой задачи. Он был долгим, тернистым, но чертовски увлекательным! Надеюсь, вам будет интересно проследить за ним и узнать для себя что-то новое о linux, android, их безопасности и их внутренностях. Я не гуру в устройстве linux, поэтому кому-то некоторые объяснения покажутся очевидными и излишне подробными, но повторюсь, это мой путь и я подробно описываю всё, что изучил в процессе. Надеюсь, это не оттолкнёт опытных линуксоидов и немного снизит порог вхождения для всех остальных. Итак. Как же реализовать тач логгер под android?
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 13

ArcSight Forwarder Connector. Пошлём куда захотим

Reading time 5 min
Views 12K
Information Security *
Tutorial
Добрый день, хабрасообщество!

В данной статье я поделюсь своим практическим опытом по выгрузке событий из ArcSight ESM. Детально рассмотрю функциональность и предоставлю пошаговую инструкцию по настройке ArcSight Forwarder Connector, а так же опишу интересные лайфхаки.


Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 2

ScreenLogger – улыбнитесь, вас снимает скрытая камера

Reading time 4 min
Views 7.1K
Information Security *.NET *
Sandbox
Итак, приветствую. В данной статье будет разобран процесс написания программы, позволяющей в режиме реального времени отслеживать все действия происходящие на удаленном компьютере, без ведома конечного пользователя. Автор статьи предупреждает, что не несет ответственности за неправомерное использование нижеизложенных технологий и не рекомендует использовать ее в противоправных целях. Поехали!
Читать дальше →
Total votes 43: ↑16 and ↓27 -11
Comments 16

ALog: плюс один логгер для C++ приложений

Reading time 20 min
Views 7.7K
Programming *C++ *
Sandbox

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 33

Провайдер логирования для Telegram (.NET 5 / .NET Core)

Reading time 3 min
Views 12K
Programming *.NET *C# *
Tutorial

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

Несколько дней назад я решил вернуться к этому проекту, слегка почистить и отрефакторить код, а затем выложить его в открытый доступ – быть может возможность получения логов в Телеграм будет полезна кому-то еще. Если этот кто-то – вы, то

добро пожаловать под кат
Total votes 10: ↑10 and ↓0 +10
Comments 10
1