Skip to content

Commit ad77ac9

Browse files
committed
logging doc spanish version
1 parent 284ff0a commit ad77ac9

File tree

1 file changed

+48
-25
lines changed

1 file changed

+48
-25
lines changed

src/site/es/xdoc/logging.xml

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
</ul>
4747
<p>La solución de logging elegida se basa en una introspección en tiempo de ejecución de la propia factoría interna de MyBatis. La factoría usará la primera implementación de logging que encuentre (el orden de búsqueda es el de la lista de más arriba). Si no se encuentra ninguna, el logging se desactivará.
4848
</p>
49-
<p>Muchos entornos vienen con JCL incluido como pare del classpath del servidor (por ejemplo Tomcat y WebSphere). Es importante conocer que en esos entorno, MyBatis usará JCL como implementación de logging. En un entorno como WebSphere esto significa que tu configuración de log4j será ignorada dado que WebSphere proporciona su propia implementación de JCL. Esto puede ser muy frustrante porque parece que MyBatis está ignorando tu configuración de logging (en realidad, MyBatis está ignorando tu configuración de log4j porque está usando JCL en dicho entorno). Si tu aplicación se ejecuta en un entorno que lleva JCL incluido pero quieres usar un método distinto de logging puedes llamar a los siguientes métodos:
49+
<p>Muchos entornos vienen con Commons Logging incluido como pare del classpath del servidor (por ejemplo Tomcat y WebSphere). Es importante conocer que en esos entorno, MyBatis usará JCL como implementación de logging. En un entorno como WebSphere esto significa que tu configuración de log4j será ignorada dado que WebSphere proporciona su propia implementación de JCL. Esto puede ser muy frustrante porque parece que MyBatis está ignorando tu configuración de logging (en realidad, MyBatis está ignorando tu configuración de log4j porque está usando JCL en dicho entorno). Si tu aplicación se ejecuta en un entorno que lleva JCL incluido pero quieres usar un método distinto de logging puedes llamar a los siguientes métodos:
5050
</p>
5151
<source><![CDATA[org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
5252
org.apache.ibatis.logging.LogFactory.useLog4JLogging();
@@ -58,6 +58,9 @@ org.apache.ibatis.logging.LogFactory.useStdOutLogging();]]></source>
5858
<p>Los temas específicos de JCL, Log4j y el Java Logging API quedan fuera del alcance de este documento. Sin embargo la configuración de ejemplo que se proporciona más abajo te ayudará a comenzar. Si quieres conocer más sobre estos frameworks, puedes obtener más información en las siguientes ubicaciones:
5959
</p>
6060
<ul>
61+
<li>
62+
<a href="http://www.slf4j.org/">SLF4J</a>
63+
</li>
6164
<li>
6265
<a href="http://commons.apache.org/logging">Apache Commons Logging</a>
6366
</li>
@@ -69,14 +72,7 @@ org.apache.ibatis.logging.LogFactory.useStdOutLogging();]]></source>
6972
</li>
7073
</ul>
7174
<subsection name="Logging Configuration">
72-
<p>MyBatis loguea la mayoría de su actividad usando clases de logging que no están en paquetes de MyBatis. Para ver el log de las sentencias debes activar el log en el paquete java.sql – específicamente en las siguientes clases:
73-
</p>
74-
<ul>
75-
<li><code>java.sql.Connection</code></li>
76-
<li><code>java.sql.PreparedStatement</code></li>
77-
<li><code>java.sql.Resultset</code></li>
78-
<li><code>java.sql.Statement</code></li>
79-
</ul>
75+
<p>Para ver el log de las sentencias debes activar el log en un paquete, el nombre plenamente cualificado de una clase, un namespace o un nombre plenamente cualificado de un mapped statement.</p>
8076
<p>Nuevamente, como hagas esto es dependiente de la implementación de logging que se esté usando. Mostraremos cómo hacerlo con Log4j. Configurar los servicios de logging es simplemente cuestión de añadir uno o varios ficheros de configuración (por ejemplo log4j.properties) y a veces un nuevo JAR (por ejemplo log4j.jar). El ejemplo siguiente configura todos los servicios de logging para que usen log4j como proveedor. Sólo son dos pasos:
8177
</p>
8278
<h4>Paso 1: Añade el fichero Log4J JAR
@@ -88,32 +84,59 @@ org.apache.ibatis.logging.LogFactory.useStdOutLogging();]]></source>
8884
<h4>
8985
Paso 2: Configurar Log4J
9086
</h4>
91-
<p>Configurar Log4j es sencillo – debes crear un fichero log4j.properties que tiene el siguientes aspecto:
87+
<p>Configurar Log4j es sencillo. Supongamos que quieres habilitar el log para este mapper:</p>
88+
<source><![CDATA[package org.mybatis.example;
89+
public interface BlogMapper {
90+
@Select("SELECT * FROM blog WHERE id = #{id}")
91+
Blog selectBlog(int id);
92+
}]]></source>
93+
<p>Crea un fichero con nombre <code>log4j.properties</code>
94+
como el que se muestra a continuación y colocalo en tu classpath:
9295
</p>
9396
<source><![CDATA[# Global logging configuration
9497
log4j.rootLogger=ERROR, stdout
9598
# MyBatis logging configuration...
96-
#log4j.logger.org.apache.ibatis=DEBUG
97-
#log4j.logger.java.sql.Connection=DEBUG
98-
#log4j.logger.java.sql.Statement=DEBUG
99-
#log4j.logger.java.sql.PreparedStatement=DEBUG
100-
#log4j.logger.java.sql.ResultSet=DEBUG
99+
log4j.logger.org.mybatis.example.BlogMapper=TRACE
101100
# Console output...
102101
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
103102
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
104103
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n]]></source>
105-
<p>El fichero anterior es la configuración mínima que hará que el logging sólo reporte errores. La línea 2 del fichero es la que indica que solo se reporten errores al appender stdout. Un appender es un componente que recolecta la salida (ej. consola, ej. fichero, base de datos, etc.). Para maximizar el nivel de reporting cambia la línea 2 de la siguiente forma:
106-
</p>
107-
<p></p>
108-
<source>log4j.rootLogger=DEBUG, stdout</source>
109-
<p></p>
110-
<p>Al cambiar la línea 2 como se ha indicado, Log4j reportará todos los eventos al apender ‘stdout’ (consola). Si quieres ajustar el logging a un nivel más fino, puedes configurar qué clase envía sus logs al sistema usando la sección “MyBatis logging configuration...” del fichero anterior (líneas comentadas desde la 4 a la 8). Por ejemplo si queremos loguear la actividad de los PreparedStatement a la consola a nivel DEBUG, podemos cambiar simplemente la línea 7 a lo siguiente (fíjate que ya no está comentada):
111-
</p>
104+
<p>El fichero anterior hará que log4j reporte información detallada para <code>org.mybatis.example.BlogMapper</code> e información de errores para el resto de las clases de tu aplicación.</p>
105+
<p>Si quieres activar un nivel más fino de logging puedes activar el logging para statements específicos en lugar de para todo un mapper. La siguiente línea activa el logging sólo para el statement <code>selectBlog</code>:</p>
112106

113-
<source>log4j.logger.java.sql.PreparedStatement=DEBUG</source>
107+
<source>log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE</source>
108+
109+
<p>Si por el contrario quieres activar el log para un grupo de mappers debes añadir un logger para el paquete raiz donde residen tus mappers:</p>
114110

115-
<p>El resto de la configuración sirve para configurar los appenders, lo cual queda fuera del ámbito de este documento. Sin embargo, puedes encontrar más información en el site de Log4j (la url está más arriba). O, puedes simplemente experimentar para ver los efectos que consigues con las distintas opciones de configuración.
116-
</p>
111+
<source>log4j.logger.org.mybatis.example=TRACE</source>
112+
113+
<p>Hay consultas que pueden devolver una gran cantidad de datos. En esos casos puedes querer ver las sentencias SQL pero no los datos. Para conseguirlo las sentencias se loguean con nivel DEBUG (FINE en JDK) y los resultados con TRACE (FINER en JDK), por tanto si quieres ver la sentencia pero no el resultado establece el nivel a DEBUG</p>
114+
115+
<source>log4j.logger.org.mybatis.example=DEBUG</source>
116+
117+
<p>Y si estás usando ficheros XML como este?</p>
118+
119+
<source><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
120+
<!DOCTYPE mapper
121+
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
122+
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
123+
<mapper namespace="org.mybatis.example.BlogMapper">
124+
<select id="selectBlog" parameterType="int" resultType="Blog">
125+
select * from Blog where id = #{id}
126+
</select>
127+
</mapper>]]></source>
128+
129+
<p>En tal caso puedes activar el logging de todo el fichero añadiendo un logger para el namespace como se muestra a continuación:</p>
130+
131+
<source>log4j.logger.org.mybatis.example.BlogMapper=TRACE</source>
132+
133+
<p>O para un statement específico:</p>
134+
135+
<source>log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE</source>
136+
137+
<p>Sí, como ya te habrás dado cuenta, no hay ninguna diferencia entre configurar el logging para un mapper o para un fichero XML.</p>
138+
139+
<p>El resto de la configuración sirve para configurar los appenders, lo cual queda fuera del ámbito de este documento. Sin embargo, puedes encontrar más información en el site de Log4j (la url está más arriba). O, puedes simplemente experimentar para ver los efectos que consigues con las distintas opciones de configuración.</p>
117140
</subsection>
118141
</section>
119142
</body>

0 commit comments

Comments
 (0)