<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр:  Метки / logging</title>
	<link>http://habrahabr.ru/rss/tag/logging/</link>
	<description><![CDATA[]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 03:24:12 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
			
		<item>		
			<title><![CDATA[Python / Python sqlite3: Находим медленные запросы]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/python/137677/</guid>
			<link>http://habrahabr.ru/blogs/python/137677/</link>			
			<description><![CDATA[Привет, коллеги!<br/>
При работе с базами данных sqlite передо мной возникла задача поиска медленных запросов и их логгирования.<br/>
Спросив всезнающий Google я к сожалению не обнаружил ни одного <a href="http://stackoverflow.com/questions/6941992/how-can-i-log-queries-in-sqlite3-with-python">решения</a> (плохо искал?).<br/>
Поэтому я хочу предложить свой вариант протоколирования.<br/>
UPD: Спасибо за подсказку, нативный вариант решения называется <a href="http://apidoc.apsw.googlecode.com/hg/connection.html#apsw.Connection.setprofile">APSW</a><br/>
<br/>
<img src="http://www.file-extensions.org/imgs/company-logo/3345/sqlite-development-team.png" alt="image"/><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/python/137677/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 06 Feb 2012 09:25:07 GMT</pubDate>
			<author>isox</author>
			<category>python</category><category>sqlite3</category><category>slow query</category><category>logging</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Node.JS / Маршрутизация запросов в Autodafé]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/nodejs/135722/</guid>
			<link>http://habrahabr.ru/blogs/nodejs/135722/</link>			
			<description><![CDATA[Autodafé — node.js фреймворк, начало читайте в этой статье: <a href="http://habrahabr.ru/blogs/nodejs/135089/">habrahabr.ru/blogs/nodejs/135089/</a><br/>
<br/>
Основная часть статьи будет посвящена перенаправлению запросов в autodafe, формированию URL и т. п. Но для начала мне бы хотелось осветить общие принципы работы приложения с подключенными клиентами, для того чтобы было понятнее какую часть рабочего процесса мы будем обсуждать.<br/>
<br/>
<h3>Откуда берется пыль</h3><br/>
Начнем со схемы, отображающей подключение клиентов к приложению:<br/>
<br/>
<img src="http://habrastorage.org/storage2/44a/2f2/551/44a2f255167a117b699c6c98ed0fe714.png"/><br/>
<br/>
На схеме можно увидеть несколько пользователей, которые пользуются различными устройствами и различными браузерами, которые в свою очередь подключаются к приложению по различным протоколам. (В данный момент к autodafe можно подключиться только по http и websockets)<br/>
<br/>
В приложении каждому подключению соответствует один Client. Client создается для каждого http запроса и подключения по websockets. Клиенты с одинаковым идентификатором сессии принадлежат одному экземпляру Session. Обычно одна сессия в приложение соответствует одному браузеру.<br/>
<br/>
Ну и для логического завершения на схеме приведен компонент “users”, который позволяет привязать различные сессии, прошедшие специальную авторизацию к одному объекту UserIdentity. Таким образом в приложении каждый объект UserIdentity соотносится к одному реальному пользователю.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nodejs/135722/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 05 Jan 2012 01:44:17 GMT</pubDate>
			<author>and_rew</author>
			<category>node.js</category><category>javascript</category><category>autodafe</category><category>mvc</category><category>mysql</category><category>orm</category><category>logging</category><category>routing</category><category>activerecord</category><category>websockets</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Node.JS / Autodafé]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/nodejs/135089/</guid>
			<link>http://habrahabr.ru/blogs/nodejs/135089/</link>			
			<description><![CDATA[<a href="https://github.com/jifeon/autodafe">Autodafe</a> — node.js фреймворк для разработки веб приложений<br/>
<br/>
<h3>Самые вкусные плюшки из коробки:</h3><br/>
<ul>
<li>архитектура: MVC + подключаемые модули</li>
<li>Mysql ORM (ActiveRecord с поддержкой отношений, асинхронное подобие того, что предлагает Yii framework для PHP )</li>
<li>HTTP сервер</li>
<li>WebSockets ( обертка для socket.io )</li>
<li>удобное перенаправление запросов и человеко понятные УРЛ</li>
<li>управление пользователями<ul>
<li>аутентификация и авторизация, сессии</li>
<li>система управления правами ролей пользователей</li>
</ul></li>
<li>почта ( обертка для emailjs )</li>
<li>логирование в консоль, фс и на почту</li>
<li>юнит тестирование ( обертка для vows )</li>
<li>шаблонизатор ( расширенный dust )</li>
</ul><br/>
<h3>Ложка дегтя:</h3><br/>
<ul>
<li>очень малая часть задокументирована</li>
<li>задокументированная часть плохо задокументирована</li>
<li>плохо задокументированная часть задокументирована только на русском языке</li>
<li>тестами покрыт не весь фреймворк</li>
</ul><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nodejs/135089/#habracut">Hello World на Autodafe</a> </div>]]></description>
			
			<pubDate>Thu, 22 Dec 2011 02:31:31 GMT</pubDate>
			<author>and_rew</author>
			<category>node.js</category><category>javascript</category><category>autodafe</category><category>mvc</category><category>mysql</category><category>orm</category><category>logging</category><category>routing</category><category>activerecord</category><category>websockets</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[JAVA / Логирование в Java / quick start]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/java/130195/</guid>
			<link>http://habrahabr.ru/blogs/java/130195/</link>			
			<description><![CDATA[В ходе моей работы в компании DataArt я, в числе прочего, занимаюсь менторской деятельностью. В частности это включает в себя проверку учебных заданий сделанных практикантами. В последнее время в заданиях наметилась тенденция «странного» использования логеров. Мы с коллегами решили включить в текст задания ссылку на статью с описанием java logging best practices, но оказалось, что такой статьи в которой бы просто и без лишних деталей на практике объяснялось бы как надо писать в лог на Java, вот так вот с ходу не находится. <br/>
<br/>
Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше<br/>
 <div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/java/130195/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 12 Oct 2011 15:47:13 GMT</pubDate>
			<author>Semenych</author>
			<category>logging</category><category>quick start</category><category>best practices</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Python / Как я боролся с кодировками в консоли]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/python/117236/</guid>
			<link>http://habrahabr.ru/blogs/python/117236/</link>			
			<description><![CDATA[В очередной раз запустив в Windows свой скрипт-информер для <a href="http://zhurnal.lib.ru">СамИздат-а</a> и увидев в консоли <a href="http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B0%D0%BA%D0%BE%D0%B7%D1%8F%D0%B1%D1%80%D1%8B">«загадочные символы»</a> я сказал себе: «Да уже сделай, наконец, себе нормальный кросс-платформенный логгинг!»<br/>
<br/>
Об этом, и о том, как раскрасить вывод лога наподобие Django-вского в Win32 я попробую рассказать под хабра-катом <sub>(Всё ниженаписанное применимо к Python 2.x ветке)</sub><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/python/117236/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 12 Apr 2011 12:15:57 GMT</pubDate>
			<author>av0000</author>
			<category>python</category><category>colored console</category><category>ansi</category><category>logging</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Erlang/OTP / Logging. «Из коробки»]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/erlang/115209/</guid>
			<link>http://habrahabr.ru/blogs/erlang/115209/</link>			
			<description><![CDATA[Ведение логов применяется в каждом программном продукте, дожившем до стадии продакшена. Erlang предоставляет программистам целую экосистему, которая включает и механизмы слежения за приложением. В этой части я рассмотрю именно функционал «из коробки».<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/erlang/115209/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 11 Mar 2011 20:21:50 GMT</pubDate>
			<author>cursed</author>
			<category>erlang</category><category>logging</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Персональные блоги / iFLogger, агрегатор логов для флеш разработчика]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/personal/92828/</guid>
			<link>http://habrahabr.ru/blogs/personal/92828/</link>			
			<description><![CDATA[Любой разработчик занает, без отладки некоторые проекты собрать невозможно. Касается это любого программиста для любого языка под любую платформу.<br/>
<br/>
Являясь флеш-разработчиком, мне довольно часто приходилось использовать сначала системный trace(), а затем и Debug.trace() для вывода логов в отдельное, всегда доступное окно. Конечно есть и другие способы…<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://ALiEN-QWERTY.habrahabr.ru/blog/92828/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 05 May 2010 11:21:46 GMT</pubDate>
			<author>ALiEN_QWERTY</author>
			<category>iFLogger</category><category>Flash</category><category>actionscript</category><category>trace</category><category>debug</category><category>debugger</category><category>logging</category><category>logger</category><category>mac os x</category><category>Flex</category><category>fdt</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[JAVA / EDL — Enterprise Dynamic Logger]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/java/76300/</guid>
			<link>http://habrahabr.ru/blogs/java/76300/</link>			
			<description><![CDATA[Долго думал в&nbsp;какой блог можно поместить этот топик: в&nbsp;«Я&nbsp;пиарюсь» или «Java», но&nbsp;остановился&nbsp;на «Java», чтобы получить максимальное количество отзывов и&nbsp;предложений да&nbsp;еще и&nbsp;максимально профессиональных.<br/>
<br/>
Итак, представляю вам Enterprise Dynamic Logger (<b>EDL</b>).<br/>
<br/>
<b>EDL</b>&nbsp;&mdash; это тул/фреймворк для несколько <em>другой парадигмы логгинга</em>. В&nbsp;основном нужен для работы в&nbsp;условиях, когда код на&nbsp;сервере менять нельзя и&nbsp;сам сервер перезагружать тоже нельзя. Т.е. production environment.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/java/76300/#habracut">узнать больше</a> </div>]]></description>
			
			<pubDate>Tue, 24 Nov 2009 22:05:22 GMT</pubDate>
			<author>ShimON</author>
			<category>Java</category><category>logging</category><category>logger</category><category>EDL</category><category>УВД</category><category>стартап</category><category>start-up</category>
		</item>
		
		
		
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[JAVA / [Перевод] Все хорошо в меру или наконец-то в Java появился универсальный логгер]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/java/71099/</guid>
			<link>http://habrahabr.ru/blogs/java/71099/</link>
			<description><![CDATA[<h4>Это перевод заметки 2007 года, смысл которой вряд ли потерял или потеряет актуальность несмотря на давность. Во всем нужно знать меру, в том числе в проектировании и создании абстракций.</h4><br/>
Вы будете смеяться. Когда «сommon-logging» пришел с универсальной системой протоколирования, абстрагирующей ваш println (я знаю, вы можете написать регистратор, который отправляет SMS и запускает ракеты), я думал: «как это здорово»!<br/>
<br/>
Но увлекшись обобщениями трудно остановиться. Только J2EE сообщество способно запроектировать 12 уровней абстракций для организации системы выборочного универсального протоколирования.<br/>
<br/>
После многих лет использования приходит понимание, что последний уровень абстракции не приносит никакой пользы,… но вместо того, что бы просто отказаться от ненужного слоя мы возводим сверху ещё один новый слой, претендующий на еще большую универсальность.<br/>
<br/>
<blockquote>Библиотека SLF4J является альтернатвой разработке Apache Common Logging для обобщения протоколирования. Она делает все правильно: дает регистратор, а не журнал. Более того, регистратор является интерфейсом, который удобно использовать с заглушками EasyMock. Наконец, SLF4J дает очень простой и разумный подход: комбинацию JAR c интерфейсом и JAR с одной из нескольких реализаций. Вот и все, никакой магии с загрузчиками классов и динамическим связыванием. Это идеальное решение для 99.99999% приложений.</blockquote><br/>
А может кому-нибудь написать еще одну надстройку для «Commons-Logging» и «SLF4J»? Ведь в этом случае можно было бы переключаться между ними без какой-либо правки кода. :-)]]></description>
			
			<pubDate>Wed, 30 Sep 2009 18:16:30 GMT</pubDate>
			<author>AnatolyB</author>
			<category>java</category><category>абстракция</category><category>проектирование</category><category>протоколирование</category><category>logging</category>
		</item>
		
		
		
		
		
	
	
	
	
	
	
	
	

	
</channel>
</rss>

