当前位置: 首页 > article >正文

学到一些小知识关于Maven 与 logback 与 jpa 日志

1.jpa想要输出参数

logging:
  level:
    org.hibernate.orm.jdbc.bind: trace #打印SQL参数
    web: debug #web框架的日志级别

就可以了,

2.Slf4j

其实 Slf4j 是一个日志接口规范,没有具体的实现

而 logback 是 Slf4j的一个实现 ,也是springboot3 的默认实现, 

一个项目最好只有一个 Slf4j的实现,要不然可能会有冲突, 他会扫描类路径下是否有实现,然后找到后使用。

springboot3还可以切换 log4j2 的实现, 本来 log4j2 的接口与 Slf4j不同 ,但是springboot -log4j2-starter 使用了适配器模式,适配了SLF所以 可以无缝衔接 slf ,但是要排除原来自带的 springboot-logging-starter 的依赖, 来保证只有一个SLF实现

log4j2的配置文件

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!--log4j2内部的日志输出级别,跟你的项目无关-->
    <Appenders>
        <!-- 控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>

        <!-- 滚动文件输出 -->
        <RollingFile name="RollingFile" fileName="logs/application.log"
                     filePattern="logs/application-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 时间滚动策略:每天滚动一次 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <!-- 文件大小滚动策略:当文件达到 10MB 时滚动 -->
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- 保留的日志文件数量 -->
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
        <Logger name="com.yourpackage" level="debug" additivity="false">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Logger>
    </Loggers>
</Configuration>
logging:
  level:
    root: info
    com.yourpackage: debug
  config: classpath:log4j2.xml

所有的子日志 都是继承 root 日志的

3.不同依赖范围的行为

范围编译时可用测试时可用运行时可用打包到构建产物传递性
compile
provided
runtime
test
system
import

具体解释

  1. compile

    • 编译时可用:在编译项目时可用。
    • 测试时可用:在运行测试时可用。
    • 运行时可用:在项目运行时可用。
    • 打包到构建产物:会被包含在最终的构建产物(如 JAR 或 WAR 文件)中。
    • 传递性:会被传递给依赖当前项目的其他模块。
  2. provided

    • 编译时可用:在编译项目时可用。
    • 测试时可用:在运行测试时可用。
    • 运行时可用:在项目运行时不可用,因为这些依赖由运行环境提供。
    • 打包到构建产物:不会被包含在最终的构建产物中。
    • 传递性:不会被传递给依赖当前项目的其他模块。
  3. runtime

    • 编译时可用:在编译项目时不可用。
    • 测试时可用:在运行测试时可用。
    • 运行时可用:在项目运行时可用。
    • 打包到构建产物:会被包含在最终的构建产物中。
    • 传递性:会被传递给依赖当前项目的其他模块。
  4. test

    • 编译时可用:在编译项目时不可用。
    • 测试时可用:在运行测试时可用。
    • 运行时可用:在项目运行时不可用。
    • 打包到构建产物:不会被包含在最终的构建产物中。
    • 传递性:不会被传递给依赖当前项目的其他模块。
  5. system

    • 编译时可用:在编译项目时可用。
    • 测试时可用:在运行测试时可用。
    • 运行时可用:在项目运行时可用。
    • 打包到构建产物:不会被包含在最终的构建产物中。
    • 传递性:不会被传递给依赖当前项目的其他模块。
    • 特殊性:需要通过 <systemPath> 指定依赖的路径,通常是项目目录中的 JAR 文件。
  6. import

    • 编译时可用:在编译项目时不可用。
    • 测试时可用:在运行测试时不可用。
    • 运行时可用:在项目运行时不可用。
    • 打包到构建产物:不会被包含在最终的构建产物中。
    • 传递性:会被传递给依赖当前项目的其他模块。
    • 特殊性:主要用于 pom 类型的依赖,用于导入其他 pom 文件中的依赖管理信息,常用于 BOM(Bill of Materials)文件。

option 与 provided 的区别 就是 语义化

option: 在当前项目使用,其他依赖引入的时候,必须显示声明才能使用,它依赖了这个依赖的内容

provided:是根本就不传递, 有另一个容器去提供此依赖的内容

4. SQL json

将数据库 的json 字段 转化成 想要的格式 ,因为实体类改了

UPDATE enum_dictionary 
SET enum_params = (
    SELECT JSON_OBJECTAGG(
        k,
        JSON_OBJECT('defaultValue', JSON_EXTRACT(enum_params, CONCAT('$."', k, '"')))
    )
    FROM JSON_TABLE(
        JSON_KEYS(enum_params),
        '$[*]' COLUMNS (k VARCHAR(255) PATH '$')
    ) AS jt
);


http://www.kler.cn/a/522578.html

相关文章:

  • 论文阅读(十三):复杂表型关联的贝叶斯、基于系统的多层次分析:从解释到决策
  • 【Super Tilemap Editor使用详解】(十三):快捷键指南(Keyboard Shortcuts)
  • BOM对象location与数组操作结合——查询串提取案例
  • MongoDB 数据库备份和恢复全攻略
  • 爬虫基础之爬取某基金网站+数据分析
  • 初阶1 入门
  • 探索Baklib企业内容管理系统CMS优化企业文档管理的最佳实践
  • 【华为OD-E卷 - 基站维修工程师 100分(python、java、c++、js、c)】
  • Swoole的MySQL连接池实现
  • ResNeSt: Split-Attention Networks 参考论文
  • 用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决
  • 动手学图神经网络(6):利用图神经网络进行点云分类
  • 期权帮|做空股指期货是否会对股指产生影响?
  • 深入学习Java的线程的生命周期
  • 【快速上手】阿里云百炼大模型
  • 领域知识图谱的应用案例---下
  • vxe-table和element表尾合计行
  • “com.docker.vmnetd”将对你的电脑造成伤害。 如何解决 |Mac
  • 基于Flask的豆瓣电影可视化系统的设计与实现
  • IDEA 中 Maven 依赖变灰并带斜线的解决方法及原理分析
  • 数据结构——实验七·排序
  • 【LeetCode: 704. 二分查找 + 二分】
  • 海外问卷调查渠道查如何设置:最佳实践+示例
  • 在生产环境中部署和管理 Apache:运维从入门到精通
  • 关于数字地DGND和模拟地AGND隔离
  • Layui 列表根据不同数据展示不同内容,并展示对应颜色