log4j

Eclipse手把手写接口

非 Y 不嫁゛ 提交于 2020-01-07 21:41:24
Eclipse手把手写接口 概览 整合druid+mybatis 搭建接口 配置Spring Security 概览 本节将使用Eclipse构建SpringBoot项目,整合spring security、druid、mybatis一步一步写一个接口。 整合druid+mybatis 德鲁伊、Mybatis配置部分 引入 maven < dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-jdbc < /artifactId > < /dependency > < dependency > < groupId > mysql < /groupId > < artifactId > mysql-connector-java < /artifactId > < scope > runtime < /scope > < /dependency > < ! -- 引入 myBatis,这是 MyBatis官方提供的适配 Spring Boot 的,而不是Spring Boot自己的-- > < dependency > < groupId > org.mybatis.spring.boot < /groupId > < artifactId >

Java日志相关概述

两盒软妹~` 提交于 2020-01-07 20:34:49
日志是代码调试、生产运维必备工具,基本所有软件都会有日志记录。 1.常用日志框架介绍 1.Logging jdk1.5自带日志工具类,位于java.util.logging; 2.Log4j 市场占有率最高的一个日志框架,注意2015/08/05这一天,Apache宣布停止维护了,用户需要切到Log4j2上面去; 3.commons-logging, apache最早提供的日志门面接口,用户可以根据自己喜欢选择不同日志实现框架,而不必改动日志定义。 4.slf4j simple logging facade for java,也是日志门面接口框架,和 Apache 的 commons-logging 是一样的概念,它们都不是具体的日志框架,你可以指定其他主流的日志实现框架。使用 Slf4j 可以很灵活的使用占位符进行参数占位,简化代码,拥有更好的可读性。 5.Logback 是 Slf4j 的原生实现框架,同样也是出自 Log4j 一个人之手,但拥有比 log4j 更多的优点、特性和更做强的性能,现在基本都用来代替 log4j 成为主流。 2.日志级别 Log4j 的级别类 org.apache.log4j.Level 里面定义了日志级别,日志输出优先级由高到底分别为以下8种。 OFF,关闭,不输出日志 FATAL,致命,输出非常严重的可能会导致应用程序终止的错误 ERROR,错误

Log4j或者Logback的NDC和MDC功能

大兔子大兔子 提交于 2020-01-07 19:13:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> log4j用于存储上下文信息(context information)的两个重要的类NDC(Nested Diagnostic Context)和MDC(Mapped Diagnositc Context). NDC采用栈的机制存储上下文,是线程独立的,子线程会从父线程拷贝上下文。 开始调用 NDC.push(message); 删除栈顶消息 NDC.pop(); 清除全部的消息,必须再线程退出前显示的调用,否则会导致内存溢出。 NDC.remove(); 输出模板:l og4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ssS}] [%x] : %m%n MDC采用Map的方式存储上下文,是线程独立的,子线程会从父线程拷贝上下文。 MDC.put(key, value); MDC.get(key); MDC.remove(key); 输出模板:log4j.appender.consoleAppender.layout.ConversionPattern = %-4r [%t] %5p %c %x - %m - %X{key} %n Use %X Map中全部数据 Use %X{key} 指定输出Map中的key的值 Use %x

Java日志-SLF4J使用与源码分析

本秂侑毒 提交于 2020-01-07 18:12:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SLF4J全称The Simple Logging Facade for Java,Java简易日志门面,将接口抽象与实现隔离开,在不修改代码的情况下使用不同的日志实现。 SLF4J支持的日志实现有: log4j logback(推荐实现) java.util.logging simple(全部输出到System.err) Jakarta Commons Logging nop(忽略所有日志) 使用SLF4J 只要在项目中引入SLF4J的jar包就能开启SLF4J: 1 2 3 4 5 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> 然后写一个最简单的输出日志的程序: 1 2 3 4 5 6 7 8 9 10 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory

slf4j、jcl、jul、log4j1、log4j2、logback大总结

删除回忆录丶 提交于 2020-01-07 15:56:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #1 系列目录# 2种日志接口框架,4种日志实现框架 jdk-logging、log4j、logback日志介绍及原理 jcl与jul、log4j1、log4j2、logback的集成原理 slf4j与jul、log4j1、log4j2、logback的集成原理 slf4j、jcl、jul、log4j1、log4j2、logback大总结 slf4j + log4j原理实现及源码分析 Apache Log4j Log4j架构分析与实战 Log4J配置文件详解 Apache Commons Logging Commons Logging 架构分析 JDK Logging JDK Logging 深入分析 Logback 从Log4j迁移到LogBack的理由 Logback 深入分析 Apache Log4j2 Log4j2架构分析与实战 Log4j2配置文件详解 #2 各种jar包总结# log4j1: log4j:log4j1的全部内容 log4j2: log4j-api:log4j2定义的API log4j-core:log4j2上述API的实现 logback: logback-core:logback的核心包 logback-classic: logback实现了slf4j的API commons

log4j.properties配置文件的内容

做~自己de王妃 提交于 2020-01-07 13:06:20
# 控制台输出配置 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n # 文件输出配置 log4j.appender.A = org.apache.log4j.DailyRollingFileAppender #指定日志的输出路径 log4j.appender.A.File = D:/log.txt log4j.appender.A.Append = true log4j.appender.A.Threshold = DEBUG #使用自定义日志格式化器 log4j.appender.A.layout = org.apache.log4j.PatternLayout #指定日志的输出格式 log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #指定日志的文件编码 log4j.appender.A.encoding=UTF-8

Get the file name from complete path in log4j2 xml

独自空忆成欢 提交于 2020-01-07 08:35:33
问题 In my log4j2.xml file, I get the complete path of the logfile by passing a system property -Dlogfilename=/home/user/logs/server Log4j2 configuration: <Property name="logFile">${sys:logfilename:-/home/user/logs/server}</Property> As an added requirement, I need to get the name of the log file from the above property and I cannot pass a new system property. How can I get just the name of the file from the complete path? I dont have any experience with XML other than its use for data transport.

Java日志体系居然这么复杂?——架构篇

百般思念 提交于 2020-01-07 07:18:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文是一个系列,欢迎关注 日志到底是何方神圣?为什么要使用日志框架? 想必大家都有过使用 System.out 来进行输出调试,开发开发环境下这样做当然很方便,但是线上这样做就有麻烦了: 系统一直运行,输出越来越多,磁盘空间逐渐被写满 不同的业务想要把日志输出在不同的位置 有些场合为了更高性能,尽量控制减少日志输出,需要动态调整日志输出量 自动输出日志相关信息,比如:日期、线程、方法名称等等 显然 System.out 解决不了我们的问题,但是我们遇到的问题一定会有前人遇到过,日志也不例外,其中就有一个大牛 Ceki ,整个Java的日志体系几乎都有Ceki参与或者受到了Ceki的深度影响。当然Java日志体系的复杂度也有一部分原因是拜这位大牛所赐。 Java日志的恩怨情仇 1996年早期,欧洲安全电子市场项目组决定编写它自己的程序跟踪API(Tracing API)。经过不断的完善,这个API终于成为一个十分受欢迎的Java日志软件包,即Log4j(由Ceki创建)。 后来Log4j成为Apache基金会项目中的一员,Ceki也加入Apache组织。后来Log4j近乎成了Java社区的日志标准。据说Apache基金会还曾经建议Sun引入Log4j到Java的标准库中,但Sun拒绝了。 2002年Java1

相同类中方法间调用时日志Aop失效处理

女生的网名这么多〃 提交于 2020-01-07 06:46:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本篇分享的内容是在相同类中方法间调用时Aop失效处理方案,该问题我看有很多文章描述了,不过大多是从事务角度分享的,本篇打算从日志aop方面分享(当然都是aop,失效和处理方案都是一样),以下都是基于springboot演示; 快速定义个日志Appender 快速定义个拦截器和日志注解(aop) 模拟相同类中方法间调用时aop失效 Aop失效处理方案(就两种足够了) 快速定义个日志Appender 日志我还是喜欢log4j,大部分朋友也同样吧,这里lombok与log4j结合来完成我们的日志,如下maven包(最新mvn还是建议去官网找): <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.0-alpha0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12<

slf4j和Log4j、log4j2日志使用

强颜欢笑 提交于 2020-01-07 01:53:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在使用日志时,由于jdk,spring等版本不断升级,log的版本也需要更改,所以,使用slf4-api去调用不同的日志成为编程的规范。 具体使用方法是,在slf4j和具体的日志系统中间使用桥接,实现slf4j的spi接口,同时使用具体的日志系统。 给出几套方案: 1、slf4j+log4j2 log4j核心jar包:log4j.jar slf4j核心jar包:slf4j-api.jar slf4j与log4j的桥接包:slf4j-log4j12.jar,这个包的作用就是使用slf4j的api,但是底层实现是基于log4j <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency>