1.日志规范

各业务系统日志需要统一,以方便查看、收集日志, 日后统一ELK日志管理,以下为项目的日志配置,

这是兼容当前系统的日志,以后推行微服架构时会有变动,但日志存放方式不会改变,日后会推行spring boot log4j2.yml

主要分为三块 : 控制台日志 consoleAppend (本地调试可以打开,发布环境不能打开)

业务日志   infoAppend  按日切分  ${catalina.home}/logs/ucenter/info.log  (ucenter 为具体业务模块的名称 如站点 site)

错误日志  errorAppend 按日切分  ${catalina.home}/logs/ucenter/error.log

 各业务模块接入:只要把下面  log4j.xml (链接)文件放到web 模块 根目录下即可。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!--
* 1. 一个appender子元素定义一个日志输出目的地
* 2. 一个logger子元素定义一个日志写出器
-->
<!-- catalina.out -->
<appender name="consoleAppend" class="org.apache.log4j.ConsoleAppender" >
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p][%t][%c{1}]-[%M] %m%n" />
</layout>
</appender> <!-- error log -->
<appender name="errorAppend" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.home}/logs/ucenter/error.log" />
<param name="Append" value="true" />
<!--<param name="DatePattern" value="yyyy-MM-dd-HH-mm'.html'"/>-->
<param name="DatePattern" value="yyyy-MM-dd'.log'"/>
<param name="MaxBackupIndex" value="10" />
<param name="MaxFileSize" value="4000000" />
<param name="encoding" value="utf-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t][%c] %p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender> <!-- INFO --> <!--org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)-->
<!--<appender name="infoAppend" class="org.apache.log4j.RollingFileAppender">-->
<appender name="infoAppend" class="cn.gamemall.ucenter.core.aop.logger.core.DailyRollingFileInfoAppender">
<param name="File" value="${catalina.home}/logs/ucenter/info.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<!--<param name="MaxBackupIndex" value="10" />-->
<!--<param name="MaxFileSize" value="4096" />-->
<param name="threshold" value="INFO"/>
<param name="encoding" value="utf-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t][%c] %p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender> <appender name="IBatisAppend" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Append" value="true" />
<param name="File" value="${catalina.home}/logs/ucenter/info.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t][%c] %p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender> <!--
logger的作用:
1.[name属性]:指定你定义Logger对象时候的name
2. additivity : children-logger是否使用 rootLogger的配置,
additivity在log4j默认为true。这解释了为什么有些时候,一个日志信息在屏幕上会有多次输出。
3.还可以指定level(输出级别)、appender-ref(指定哪个append)
-->
<!-- loggers -->
<logger name="com.ibatis" additivity="true">
<level value="ERROR"/>
<appender-ref ref="IBatisAppend" />
</logger>
<logger name="java.sql.Connection" additivity="true">
<level value="ERROR"/>
<appender-ref ref="IBatisAppend" />
</logger> <logger name="java.sql.Statement" additivity="true">
<level value="ERROR"/>
<appender-ref ref="IBatisAppend" />
</logger> <logger name="java.sql.PreparedStatement" additivity="true">
<level value="DEBUG"/>
<appender-ref ref="IBatisAppend" />
</logger> <logger name="java.sql.ResultSet" additivity="true">
<level value="ERROR"/>
<appender-ref ref="IBatisAppend" />
</logger> <logger name="cn.xxx.info" additivity="true">
<!-- 如果1个包想对应多个 Appender 就这样,对于每个Appender自定义的日志级别可以在Appender上加上filter -->
<level value="INFO"/>
<appender-ref ref="infoAppend" />
</logger>
<logger name="cn.xxx.error" additivity="true">
<!-- 如果1个包想对应多个 Appender 就这样,对于每个Appender自定义的日志级别可以在Appender上加上filter -->
<level value="ERROR"/>
<appender-ref ref="infoAppend" />
</logger> <!--
root的作用(相当于全局的意思):
1.[priority ]:指定默认的全局输出级别
2.[appender-ref ]:指定一些默认的append(没有指出特殊包或者类,即那些没有指定<logger>元素的append)的输出;
-->
<root>
<priority value="INFO" />
<!--<appender-ref ref="consoleAppend" />-->
<appender-ref ref="IBatisAppend" />
<appender-ref ref="errorAppend" />
<appender-ref ref="infoAppend" />
</root> </log4j:configuration>

JAVA后台框架优化之日志篇的更多相关文章

  1. JAVA后台框架优化之微服spring boot

    1.为什么要微服? 首先我们目前后台系统业务链目前还是相对不是那么复杂,但随着项目的拆分,业务的快速推进,各项目模块的接口也随之增加,开发的复杂度不断增加,为以后扩展埋下隐患,而规划新的框架目前主要解 ...

  2. Java 集合框架综述,这篇让你吃透!

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  3. Java 后台性能优化简要

    业务系统性能优化的前提时观察和诊断.观察工具例如以下:前端优化工具:YSlow页面响应时间:Firebug方法对应时间:btraceGC日志分析:JVM 启动參数数据库优化:慢查询系统资源调用:监控 ...

  4. 【最新】最流行的java后台框架 springmvc mybaits 集代码生成器 SSM SSH

        获取[下载地址]   QQ: 313596790   [免费支持更新] A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( m ...

  5. Java学习笔记——浅谈数据结构与Java集合框架(第三篇、Map)

    桃李春风一杯酒,江湖夜雨十年灯 --寄黄几复 之前图上写错了,是Hashtable类.t是小写的,它是个很古老的类,以至于命名都没有那么规范.. HashMap HashMap就是存储key-valu ...

  6. java后台框架面试必须会的东西

  7. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  8. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  9. 《手把手教你》系列基础篇(八十四)-java+ selenium自动化测试-框架设计基础-TestNG日志-上篇(详解教程)

    1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助 ...

随机推荐

  1. [转] linux alias 编写 函数 脚本

    [From] https://blog.csdn.net/csdnmonkey/article/details/53286314 案例 alias ttt='ttt(){ echo $1 ; };tt ...

  2. 关于README的内容

    如何在开发项目的时候写出标准的README文件? 为什么要写这篇博客? 关于README的编写,这个也十分的重要,如果你觉得只是随便写写,那么你就错了:编写这部分也是相当的重要的.工欲善其事,必先利其 ...

  3. 四、OE 中添加对供应商名称的唯一限制

    最初的思路是利用sql_constraints 来限制重复的供应商名称,但后来想到在OE中供应商.客户乃至员工都隶属于Partner,sql_constrainst实际上是通过限制partner来限制 ...

  4. android4.0以上访问网络不能在主线程中进行以及在线程中操作UI的解决方法

    MONO 调用一个线程操作UI 然后报Only the original thread that created a view hierarchy can touch its views.错误 goo ...

  5. 【软件】chrome设置默认字体

    安装stylish插件 新建样式,加入代码 * { font-family: "Microsoft YaHei", "微软雅黑" !important; }

  6. 更换bbr内核

    1:首先yum update -y更新到最新CentOS 7.3 1611cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core) 2: ...

  7. ubuntu下安装h2数据库

    1.下载h2数据库安装包 http://www.h2database.com/html/download.html 2.解压安装文件包到指定目录 3.运行sh文件 4.访问web地址: http:// ...

  8. 各种数据库maven的pom文件编写与ibernate链接配置

    各种数据库Hibernate链接配置 Derby db driver maven dependency <dependency>         <groupId>org.ap ...

  9. Http协议之Content-Length

    前言 http协议是互联网中最重要的协议之一,虽然看上去很简单,但是实际中经常遇到问题,我们就已经遇到好几次了.有长连接相关的,有报文解析相关的.对http协议不能一知半解,必须透彻理解才行.所以就写 ...

  10. Gauva的安装——入门篇

    Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] ...