2017-12-14 18:47
@lishixing 你好,我好久没有看官网了,其实网上很多log4j2的配置,以下是我的配置
${sys:catalina.base}/webapps/logs/root
fileName="${LOG_ROOT}/debug.log"
filePattern="${LOG_ROOT}/$${date:yyyy-MM}-debug/debug-%d{yyyy-MM-dd}-%i.log.gz">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
fileName="${LOG_ROOT}/info.log"
filePattern="${LOG_ROOT}/$${date:yyyy-MM}-info/info-%d{yyyy-MM-dd}-%i.log">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
fileName="${LOG_ROOT}/warn.log"
filePattern="${LOG_ROOT}/$${date:yyyy-MM}-warn/warn-%d{yyyy-MM-dd}-%i.log">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
fileName="${LOG_ROOT}/error.log"
filePattern="${LOG_ROOT}/$${date:yyyy-MM}-error/error-%d{yyyy-MM-dd}-%i.log">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
fileName="${LOG_ROOT}/sql.log"
filePattern="${LOG_ROOT}/$${date:yyyy-MM}-sql/sql-%d{yyyy-MM-dd}-%i.log">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
2017-11-26 14:08
@dadu 嗯嗯,他使用的是log4j打印,我使用的是slf4j,而且我把很多有默认值的打印选项也设置了下,没有他的那么简洁
2017-11-22 18:56
@a772856947 可以看下http://www.jfinal.com/share/491,http://www.jfinal.com/share/492
2017-11-15 15:42
@a772856947 有,最后还是找到解决方案了,但是和文中提到的不太一样
1.日志解决方案
我最后换了日志框架,因为log4j最新版本是2012年,听说log4j2性能会好一点,所以便将日志框架改成slf4j+log4j2,使用log4j2.xml文件配置,除了配置Append之外还可以配置Logger,通过配置Logger限定某个包下的打印日志级别,解决了该问题
另:遇到了不少坑,大概搞了3天,最终配置完成
2.打印sql语句
在更换日志框架的过程中我发现DruidDatasource自带sql语句打印功能,无需修改jdbcUrl,只要配置文中提到的Slf4jLogFilter即可,具体内容可以看https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter,此外,Druid的统计监控功能也非常强大
如果有时间你也可以搞下,遇到问题可以在这边交流
2017-10-26 16:38
@JFinal 哦,如果是在service对方法做增强,生成的Invocation中target是一个代理对象,并不是Controller,调用inv.getController()时即使不做判断也会出现类型转换异常
如果要在service做缓存可以仿照CacheInterceptor写一个ServiceCacheInterceptor,其中不使用Controller和Action即可
多谢波总!!!
2017-10-10 16:21
你好,请问这个插件的动态添加任务功能应该是必须在QuartzPlugin.start()之前吧,因为scheduler.start();是在startJob()方法中才被调用,如果 调用addJob()后没有执行quartzPlugin.start(),动态添加的任务应该还是没有被执行吧 @埋头苦干
2017-09-15 15:28
@弯道加速跑
你好,我使用的是log4j.properties作为日志配置文件,但是不知如何设置不同级别过滤,导致控制台输出的日志非常多,尝试使用logback,将logback.xml和logback-application.xml放在resources目录下,导入logback-core,logback-classic,删除log4j相关依赖,但是日志如下:
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/F:/pocketpiano/web-api/target/web-api/WEB-INF/lib/slf4j-log4j12-1.7.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
也没有任何日志输出.
是因为JFinal不直接支持logback吗?如果要使JFinal支持logback应该怎么做?
2017-08-25 17:53
@JFinal 做的是一个社交系统,如关注数这些信息存放在一个hash里,平时使用hincrBy()进行增加,不能用getCounter(key)直接获取
目前尝试写一个Rediskit.hincrBy(),使用hget()和hset()两次操作更新hash中某个域的值,效率会低一点,但是保留cache封装"类型转换"的特点