通过自动回复机器人学Mybatis:OGNL+log4j.properties

imooc视频学习笔记 ----> URL:http://www.imooc.com/learn/154

OGNL规则:

从哪里取?(作用域、取值范围,例如封装入一个对象,该对象就是取值范围)

--> 要取的是什么类型的值()--> 如何表达 --> 例如动态拼接中的<if test = "OGNL"

SQL中获取变量值:

类似,但不是OGNL,不具备OGNL特性,例如 #{属性名}、#{_parameter}

log4j

--> 相应的jar包

--> 配置文件 

--> 适当的位置

mybatis自动读取配置文件,

这个配置文件决定怎么输出日志:输出何种级别的的日志,输出的日志格式,输出到哪里

真正决定日志内容的是MyBatis

log4j.rootLogger=DEBUG, MyConsole 
# DEBUG指的是输出级别,只有大于等于这个级别才会被输出,Mybatis的输出是debug级别的
# 在Mybatis源码包里的ConnectionLogger类里可以看到
# rootLogger是针对整个工程的
log4j.appender.MyConsole=org.apache.log4j.ConsoleAppender
# 输出到控制台
log4j.appender.MyConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.MyConsole.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
# %d是生成日志的时间
# %t指的是产生日志所处线程的名称 
# %-5p输出日志的级别,-5控制输出格式 
# %c输出日志的类全名
# %m 输出的时候的附加信息出现在这个位置 %n指换行
log4j.logger.org.apache=INFO
# log4j.logger是关键字不能动的
# 后面是自己写的包名,针对一个具体的包调整输出级别,INFO>DEBUG,不输出DEBUG信息

# Mybatis怎么加载该信息的,参看源码LogFactory.class

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly.

没找到log4j.properties文件,调整一下文件位置就可以了。

不过目前的版本貌似用的log4j2,配置文件是log4j2.xml。。。

输出示例:

log4j.appender.MyConsole.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

2017-06-27 10:37:33,928 [http-apr-8080-exec-4] DEBUG [Message.queryMessageList] - ==> Preparing: select ID, COMMAND, DESCRIPTION, CONTENT from MESSAGE where 1=1 and COMMAND=? and DESCRIPTION like '%' ? '%'
2017-06-27 10:37:33,951 [http-apr-8080-exec-4] DEBUG [Message.queryMessageList] - ==> Parameters: 伤心(String), 总是(String)
2017-06-27 10:37:33,965 [http-apr-8080-exec-4] DEBUG [Message.queryMessageList] - <== Total: 1
2017-06-27 10:41:06,394 [http-apr-8080-exec-7] DEBUG [Message.queryMessageList] - ==> Preparing: select ID, COMMAND, DESCRIPTION, CONTENT 

如何查看源代码?

properties --> java build path --> libraries --> 选中Mybatis下的 source attachment --> edit --> 添加源码的根目录

原文地址:https://www.cnblogs.com/xkxf/p/7083274.html