NutzCN Logo
问答 Nutz dao 如何使用logback,在控制台中输出sql语句
发布于 3061天前 作者 qq_f107e7ef 5277 次浏览 复制 上一个帖子 下一个帖子
标签: log

我是这样设置的,可惜没有成功,正常的输出没有问题,但sql无法输出

<configuration scan="true" scanPeriod="30 seconds">

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <!-- To enable JMX Management -->
    <jmxConfigurator/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[cjjc]%-5level %logger{0} - %msg%n</pattern>
        </encoder>
    </appender>
    
	<logger name="org.nutz.dao" level="DEBUG" />
         
    <logger name="com.test" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>
</configuration>
6 回复

查找以前的问答,
看到以前的回答是需要加上
log4j-over-slf4j
添加了log4j-over-slf4j 1.7.9
但加了后也效

但看到web项目启动信息是提示
ALL Nutz Log via Log4jLogAdapter
log4j:WARN No appenders could be found for logger (org.nutz.log.Logs).
不知道是什么原因

log4j.jar没删掉

删除了
但同样无效


<logback.version>1.1.2</logback.version> <slf4j.version>1.7.5</slf4j.version> <log4j.version>1.2.12</log4j.version> <!-- logback --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> <scope>runtime</scope> </dependency> <!-- <dependency> --> <!-- <groupId>log4j</groupId> --> <!-- <artifactId>log4j</artifactId> --> <!-- <version>${log4j.version}</version> --> <!-- <scope>runtime</scope> --> <!-- </dependency> --> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.7.9</version> </dependency>

我常试着把
slf4j-log4j12
也删除掉了,警告提示没有了,但还是没有sql语句的显示
还有别的办法吗 麻烦了

只需要3个jar

slf4j-api.jar
logback.jar
log4j-over-slf4j.jar

其他slf4j不能加, log4j更不能加.

至于有没有SQL日志出来,在于日志是否为DEBUG级别. 如果设置为INFO之类的当然木有咯

谢谢了,我解决问题了,是我的logback.xml配制的问题
正确的配制是

<?xml version="1.0" encoding="UTF-8"?>
<!-- configuration file for LogBack (slf4J implementation)
See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing-through-the-java-loggers/ -->
<configuration scan="true" scanPeriod="30 seconds">

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <!-- To enable JMX Management -->
    <jmxConfigurator/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[cjjc]%-5level %logger{0} - %msg%n</pattern>
        </encoder>
    </appender>
    
    **<logger name="org.nutz.dao" additivity="true">
        <level value="DEBUG" />
        <appender-ref ref="console" />
    </logger>**
         
    <logger name="com.test" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>
</configuration>

直接使用

是无法输出sql语句,必须指定 appender

多次尝试,确实不能加过多的log相关的jar
这里只使用了
slf4j-api.jar
logback.jar
log4j-over-slf4j.jar
这三个包

感谢wendal如此耐心 谢谢了

添加回复
请先登陆
回到顶部