springboot整合log4j打印日志

2023-11-08

1、排除springboot自带log依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2、添加日志框架依赖

        <!--引入日志依赖 抽象层 与 实现层-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.21</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
        </dependency>

3、创建log4j.properties文件,并放在资源目录文件下src/main/resource

log4j.rootLogger=DEBUG,stdout,file
log4j.additivity.org.apache=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.threshold=INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Threshold=INFO
log4j.appender.file.append=true
log4j.appender.file.File=C:/myLog/foodie-api.log

4、使用

//注意导入的是import org.slf4j.Logger;下的Logger
final static Logger logger = LoggerFactory.getLogger(HelloController.class);

logger.debug("debug: hello~");
logger.info("info: hello~");
logger.warn("warn: hello~");
logger.error("error: hello~");

举例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;

@ApiIgnore      //swagger2忽略此controller
@RestController //所有请求都是json对象
public class HelloController {

    final static Logger logger = LoggerFactory.getLogger(HelloController.class);

    @GetMapping("/hello")
    public Object hello(){

        logger.debug("debug: hello~");
        logger.info("info: hello~");
        logger.warn("warn: hello~");
        logger.error("error: hello~");

        return "hello world!";
    }
}

结果:

控制台

log文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot整合log4j打印日志 的相关文章

随机推荐

  • Redis主从复制+哨兵模式

    必读 redis的主从复制是单向的 只能有主节点到从节点 主节点以写为主从节点以读为主不能写入数据 因为系统的80 的需求都是读的需求 redis服务默认自己是主节点 一个主节点由一个或多个从节点 一个从节点只有一个主节点 全量复制 red
  • MySQL数据库性能分析与调优实践

    一 MySQL索引 1 索引简介 索引是对数据库表中一列或多列的值进行排序的一种数据结构 好比是一本书前面的目录 可以增加对特定信息的查询速度 一般来说索引本身也很大 不可能全部存储在内存中 因此索引往往是存储在磁盘上的文件中的 可能存储在
  • 谈谈对Canal(增量数据订阅与消费)的理解

    概述 canal是阿里巴巴旗下的一款开源项目 纯Java开发 基于数据库增量日志解析 提供增量数据订阅 消费 目前主要支持了mysql 也支持mariaDB 起源 早期 阿里巴巴B2B公司因为存在杭州和美国双机房部署 存在跨机房同步的业务需
  • EnvironmentLocationNotFound: Not a conda environment: C:\Program Files\Anaconda3

    问题一 conda无法找到keras信息 于是使用以下办法 恢复keras使用 EnvironmentLocationNotFound Not a conda environment C Program Files Anaconda3 长时
  • 【PTA】数组合并

    合并两个升序数组 使得合并后的数组仍然是升序 输入格式 输入两个整数n和m 表示两个数组的长度 接着输入n个整数表示第一个数组的元素 然后输入m个整数表示第二个数组的元素 要求输入时按升序输入 import java util public
  • idea导入eclipse项目(保姆式教学)

    直接上操作吧 这里的红色箭头点击OK的不用 标错了 配置全部完成之后再点击OK 然后配置自己的tomcat 正常配置就好 如果是maven项目 则右键pom xml文件 点击maven 红色的pom xml文件变为蓝色则完成 这样就将ecl
  • 模拟退火算法matlab求函数最大值实例

    模拟退火算法matlab求函数最大值实例 模拟退火算法的思路基本上是 1 粒子按照不同的概率在不同的方向漂移 随机运动 2 向目标点漂移的概率更大 趋向于能量低的点 3 随着时间的推移粒子每次漂移的步长变短 温度降低 这里粒子的速度采用正态
  • 解决GD32F20X支持包安装后打开官方例程无法识别芯片问题

    今天分享一个自己遇到的一个问题 就是在安装了GD32F20x的支持包后 发现打开keil5的工程后 提示缺少芯片的device 于是以为keil5的版本不够 又去官网下了其补丁包 没想到还是不行 后来发现迁移到keil5格式就可以找到相应的
  • 最小二乘法的矩阵推导

    顾名思义 从数学意义推导最小二乘法公式 一 解释 最小二乘法本质是寻找一组x 使Ax与b距离最近 写成二范数的形式为 最合适的x一般出现在函数的极值点 也就是导数为0的点 所以为求导计算方便 我们用二范数的平方作为计算公式 补充知识 设下列
  • nginx + lua 构建网站防护waf(一)

    最近在帮朋友维护一个站点 这个站点是一个Php网站 坑爹的是用IIS做代理 出了无数问题之后忍无可忍终于要我帮他切换到nginx上面 前期被不断的扫描和CC 最后找到了waf这样一个解决方案缓解一下 话不多说直接开始 waf的作用 防止sq
  • 111端口rpcbind漏洞

    rpcbind是NFS中用来进行消息通知的服务 实验环境 攻击机 kali linux ip 192 168 172 134 目标机 Metasploittable2 ip 192 168 172 129 攻击过程 setp1 使用nmap
  • k宝无法连接计算机,农行K宝无法识别

    2013 10 21 k宝怎么插入电脑后点击没反应是怎么回事 原因分析 静电 主板电压和系统设置等原因导致 简易步骤 1 拔出所有USB设备 关机 拔掉电源 笔记本需拔出电池 按开机键5 6下 开机重新插入USB设备 2 右键点击 我的电脑
  • 拓展:EPSILON = 1e-8

    EPSILON 是一个希腊字母 叫做艾普西隆 它代表一个常量 通常用于表示一个很小的浮点数值 其值为 1e 8 在计算机中 由于浮点数的精度限制 当两个浮点数非常接近时 它们可能由于舍入误差而不相等 为了解决这种问题 常常会使用一个很小的数
  • 图论 笔记

    关于存图 如果是有权值的边 可以用pair define pii pair
  • springboot集成es 使用x-pack

    引入架包
  • 软件测试工程师笔试题及答案(二)

    测试人员考试试卷二 考试时间90分钟 满分100分 一 判断题 每题2分 正确的 错误的 1 好的测试员不懈追求完美 2 测试程序仅仅按预期方式运行就行了 3 不存在质量很高但可靠性很差的产品 4 软件测试员可以对产品说明书进行白盒测试 5
  • 代码随想录算法训练营19期第36天

    435 无重叠区间 代码随想录 初步思路 重叠区间 贪心 总结 按照右边界排序 从左向右记录非交叉区间的个数 最后用区间总数减去非交叉区间的个数就是需要移除的区间个数 如果按照左边界排序直接求 重叠的区间 使用变量count为记录重叠区间数
  • 单一职责原则

    单一职责原则 就一个类而言 应该只有一个引起它变化的原因 如果一个类承担的职责过多就等于把这些职责耦合在一起 至少会造成以下两方面的问题 我们要去修改该类中的一个职责可能会影响到该类的其它职责 这种耦合会导致脆弱的设计 当变化发生时 设计会
  • 一个月能做什么?成长&感悟分享

    一个月做了什么 八月做了些什么 单词打卡 第一件事情就是单词打卡 英语很差的我 一样继续打卡 今天是第736天 当你还在纠结扇贝和不背 可可英语哪一个好的时候 别人已经同时使用了 当你还在咨询学编程 敲代码需不需要英语的时候 别人已经开始同
  • springboot整合log4j打印日志

    1 排除springboot自带log依赖