网站做权重有用吗,潍坊建设部门管理网站,网站建设外包公司怎么样,东莞网站制作搜索祥奔科技要查看MyBatis的日志语句#xff0c;您可以在一个包、一个完全限定的映射器类名、一个命名空间或一个完全限定的语句名称上启用日志记录。
再次强调#xff0c;如何做这取决于所使用的日志实现。我们将展示如何在SLF4J(Logback)中进行配置。配置日志服务只需添加一个或多个额…要查看MyBatis的日志语句您可以在一个包、一个完全限定的映射器类名、一个命名空间或一个完全限定的语句名称上启用日志记录。
再次强调如何做这取决于所使用的日志实现。我们将展示如何在SLF4J(Logback)中进行配置。配置日志服务只需添加一个或多个额外的配置文件例如logback.xml有时还需要添加一个新的JAR文件。以下示例配置将使用SLF4J(Logback)作为提供程序配置完整的日志服务。有2个步骤。
第一步: 添加 SLF4J 和 Logback JAR包
由于我们使用SLF4J(Logback)我们需要确保它的JAR文件对我们的应用程序可用。要使用SLF4J(Logback)您需要将JAR文件添加到应用程序的类路径中。
对于Web或企业应用程序您可以将logback-classic.jar、logback-core.jar和slf4j-api.jar添加到您的WEB-INF/lib目录中或者对于独立应用程序您可以直接将其添加到JVM的-classpath启动参数中。
如果您使用Maven您可以通过在pom.xml文件中添加以下设置来下载JAR文件。
dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.x.x/version
/dependency
第二步: 配置 Logback
配置Logback非常简单。假设您想要启用这个Mapper的日志
package org.mybatis.example;
public interface BlogMapper {Select(SELECT * FROM blog WHERE id #{id})Blog selectBlog(int id);
} 创建一个名为logback.xml的文件内容如下并将其放置在类路径中
?xml version1.0 encodingUTF-8?
!DOCTYPE configuration
configurationappender namestdout classch.qos.logback.core.ConsoleAppenderencoderpattern%5level [%thread] - %msg%n/pattern/encoder/appenderlogger nameorg.mybatis.example.BlogMapperlevel valuetrace//loggerroot levelerrorappender-ref refstdout//root/configuration
上述文件将导致SLF4J(Logback)对org.mybatis.example.BlogMapper进行详细的日志记录并对应用程序的其他类仅报告错误。
如果您想在更细的级别上调整日志记录可以仅针对特定的语句而不是整个映射器文件开启日志记录。以下代码可仅为selectBlog语句启用日志记录
logger nameorg.mybatis.example.BlogMapper.selectBloglevel valuetrace/
/logger
相反地您可能希望为一组映射器启用日志记录。在这种情况下您应该将包含映射器的根包添加为一个记录器
logger nameorg.mybatis.examplelevel valuetrace/
/logger有些查询可能返回大量的结果集。在这种情况下您可能只想看到SQL语句而不是结果。为了实现这个目的SQL语句被记录在DEBUG级别JDK日志中的FINE级别结果被记录在TRACE级别JDK日志中的FINER级别。因此如果您只想看到语句而不是结果请将日志级别设置为DEBUG。
logger nameorg.mybatis.examplelevel valuedebug/
/logger
如果您没有使用映射器接口而是使用类似这样的映射器XML文件该怎么办呢
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceorg.mybatis.example.BlogMapperselect idselectBlog resultTypeBlogselect * from Blog where id #{id}/select
/mapper
在这种情况下您可以通过添加一个与命名空间相对应的记录器来为整个XML文件启用日志记录示例如下
logger nameorg.mybatis.example.BlogMapperlevel valuetrace/
/logger
或者针对特定语句进行配置logger nameorg.mybatis.example.BlogMapper.selectBloglevel valuetrace/
/logger是的正如您可能已经注意到的那样在配置映射器接口或XML映射器文件的日志记录时没有任何区别。
注意如果您正在使用SLF4J或Log4j 2MyBatis将使用标记MYBATIS来调用它。
配置Log4j 2的例子
!-- pom.xml --
dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.x.x/version
/dependency
!-- log4j2.xml --
?xml version1.0 encodingUTF-8?
Configuration xmlnshttp://logging.apache.org/log4j/2.0/configAppendersConsole namestdout targetSYSTEM_OUTPatternLayout pattern%5level [%t] - %msg%n//Console/AppendersLoggersLogger nameorg.mybatis.example.BlogMapper leveltrace/Root levelerror AppenderRef refstdout//Root/Loggers/Configuration
配置Log4j的例子
!-- pom.xml --
dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version
/dependency
# log4j.properties
log4j.rootLoggerERROR, stdoutlog4j.logger.org.mybatis.example.BlogMapperTRACElog4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern%5p [%t] - %m%n
配置 JDK logging的例子
# logging.properties
handlersjava.util.logging.ConsoleHandler
.levelSEVEREorg.mybatis.example.BlogMapperFINERjava.util.logging.ConsoleHandler.levelALL
java.util.logging.ConsoleHandler.formatterjava.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format%1$tT.%1$tL %4$s %3$s - %5$s%6$s%n