1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>LuaLogging: uma API simples para usar os recursos de log em Lua</title>
<link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"><a href="http://www.keplerproject.org">
<img alt="Logotipo do LuaLogging" src="lualogging-128.png"/></a></div>
<div id="product_name"><big><strong>LuaLogging</strong></big></div>
<div id="product_description">Uma API simples para usar recursos de log em Lua</div>
</div> <!-- id="product" -->
<div id="main">
<div id="navigation">
<h1>LuaLogging</h1>
<ul>
<li><a href="index.html">Início</a>
<ul>
<li><a href="index.html#overview">Visão geral</a></li>
<li><a href="index.html#status">Status</a></li>
<li><a href="index.html#download">Download</a></li>
<li><a href="index.html#history">Histórico</a></li>
<li><a href="index.html#credits">Créditos</a></li>
<li><a href="index.html#contact">Fale conosco</a></li>
</ul>
</li>
<li><strong>Manual</strong>
<ul>
<li><a href="manual.html#introduction">Introdução</a></li>
<li><a href="manual.html#installation">Instalação</a></li>
<li><a href="manual.html#logger">Objetos logger</a></li>
<li><a href="manual.html#examples">Exemplos</a></li>
</ul>
</li>
<li><a href="manual.html#appenders">Appenders</a>
<ul>
<li><a href="console.html">Console</a></li>
<li><a href="file.html">Arquivo</a></li>
<li><a href="sql.html">SQL</a></li>
<li><a href="socket.html">Soquete</a></li>
<li><a href="email.html">Email</a></li>
</ul>
</li>
<li><a href="license.html">Licença</a></li>
</ul>
</div> <!-- id="navigation" -->
<div id="content">
<h2><a name="introduction"></a>Introdução</h2>
<p>LuaLogging fornece uma API simples para usar recursos de log em Lua.
O design se baseia em <a href="http://logging.apache.org/log4j/docs/index.html">log4j</a>.
No momento, LuaLogging oferece suporte a resultados em consoles, arquivos, emails,
soquetes e sql com o uso de <em><a href="#appenders">appenders</a></em>.</p>
<p>LuaLogging define uma única variável global, uma tabela chamada <code>logging</code>,
que contém uma função para criar novos <a href="#logger"><code>logger</code>s</a>.</p>
<p>Este construtor de <code>logger</code>s recebe uma função
(chamada <em>appender</em>) que será chamada
sempre que houver uma mensagem de log for escrita.</p>
<p>Uma função <em>appender</em> aceita três argumentos:</p>
<ul>
<li><strong>self</strong>: o objeto logger</li>
<li><strong>level</strong>: o nível de log</li>
<li><strong>message</strong>: a mensagem a ser registrada</li>
</ul>
<h2><a name="installation"></a>Instalação</h2>
<p>LuaLogging é distribuído como um conjunto de arquivos Lua e segue o
<a href="http://www.keplerproject.org/compat/">modelo de pacotes</a> de Lua 5.1, portanto,
ele deve ser "instalado". Se você está usando Lua 5.0, por favor
consulte a seção <a href="http://www.keplerproject.org/compat/manual.html#configuration">Configuração do Compat-5.1</a>
para obter informações sobre como instalar corretamente os módulos.</p>
<h2><a name="logger"></a>Objetos logger</h2>
<p>Um objeto logger oferece os métodos a seguir, que escrevem mensagens de log.</p>
<p>Para cada um dos métodos a seguir, o parâmetro <code>message</code>
pode ser qualquer valor Lua e não apenas strings. Quando necessário,
<code>message</code> é convertido em uma string.</p>
<p>O parâmetro <code>level</code> pode ser uma das variáveis relacionadas a seguir.
Os valores são apresentados em ordem de importância decrescente, assim,
o nível mínimo é definido como <code>logging.WARN</code>,
portanto, as mensagens dos níveis <code>logging.INFO</code> e
<code>logging.DEBUG</code> não são registradas.</p>
<dl class="reference">
<dt><strong>logging.DEBUG</strong></dt>
<dd>O nível <em>DEBUG</em> designa eventos informativos detalhados que são os
mais úteis quando se depura um aplicativo.</dd>
<dt><strong>logging.INFO</strong></dt>
<dd>O nível <em>INFO</em> designa as mensagens informativas que evidenciam o andamento
do aplicativo em um nível menos detalhado.</dd>
<dt><strong>logging.WARN</strong></dt>
<dd>O nível <em>WARN</em> designa situações potencialmente danosas.</dd>
<dt><strong>logging.ERROR</strong></dt>
<dd>O nível <em>ERROR</em> designa eventos de erro que podem ainda permitir que a aplicação
continue a ser executado.</dd>
<dt><strong>logging.FATAL</strong></dt>
<dd>O nível <em>FATAL</em> designa eventos de erro muito graves que, presumivelmente,
podem levar o aplicativo a ser encerrado.</dd>
</dl>
<h3>Métodos</h3>
<dl class="reference">
<dt><strong>logger:log (level, message)</strong></dt>
<dd>Registra uma mensagem com o nível especificado.</dd>
<dt><strong>logger:debug (message)</strong></dt>
<dd>Registra uma mensagem com o nível DEBUG.</dd>
<dt><strong>logger:info (message)</strong></dt>
<dd>Registra uma mensagem com o nível INFO.</dd>
<dt><strong>logger:warn (message)</strong></dt>
<dd>Registra uma mensagem com o nível WARN.</dd>
<dt><strong>logger:error (message)</strong></dt>
<dd>Registra uma mensagem com o nível ERROR.</dd>
<dt><strong>logger:fatal (message)</strong></dt>
<dd>Registra uma mensagem com o nível FATAL.</dd>
<dt><strong>logger:setLevel (level)</strong></dt>
<dd>Este método define um nível mínimo para que as mensagens sejam
registradas.</dd>
</dl>
<h2><a name="examples"></a>Exemplos</h2>
<p>O exemplo a seguir cria um logger que imprime
(ou executa a ação da função de impressão)
o nível e a mensagem na saída padrão.</p>
<pre class="example">
require "logging"
local logger = logging.new(function(self, level, message)
print(level, message)
return true
end)
logger:setLevel (logging.WARN)
logger:log(logging.INFO, "enviando email")
logger:info("tentando contatar o servidor")
logger:warn("o servidor ainda não respondeu")
logger:error("o servidor não pode ser alcançado")
</pre>
<p>Após executar o exemplo anterior, as linhas a seguir serão
mostradas na saída padrão. Observe que as solicitações
de log do nível <em>INFO</em> não são tratadas porque o
nível mínimo está definido como <em>WARN</em>.</p>
<pre class="example">
WARN o servidor ainda não respondeu
ERROR o servidor não pode ser alcançado
</pre>
<a name="appenders"></a>
<h2>Appenders</h2>
Os appenders a seguir são incluídos na distribuição padrão.
<ul>
<li><a href="console.html">Console</a></li>
<li><a href="file.html">Arquivo</a></li>
<li><a href="sql.html">SQL</a></li>
<li><a href="socket.html">Soquete</a></li>
<li><a href="email.html">Email</a></li>
</ul>
<h2>Atualização da versão 1.0.0</h2>
<p>Fazer a atualização do LuaLogging 1.0.0 é muito fácil.
O objeto <code>logger</code> é totalmente compatível. Basta alterar o
código que cria o objeto.</p>
<p>O construtor <code>logger</code> da versão 1.0.0 aceitava um único
argumento, que era um nome de arquivo. Para atualizar para a versão 1.1.0,
você deve criar um objeto <code>logging.file</code>, passando o nome do arquivo
como argumento. Isso é tudo.</p>
</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<p><a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-xhtml10" alt="XHTML 1.0 válido!" height="31" width="88" /></a></p>
<p><small>$Id: manual.html,v 1.3 2006/02/20 18:24:22 tuler Exp $</small></p>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
|