前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Boot 3中一套可以直接用于生产环境的Log4J2日志配置

Spring Boot 3中一套可以直接用于生产环境的Log4J2日志配置

作者头像
耕耘实录
发布于 2023-12-18 03:56:38
发布于 2023-12-18 03:56:38
2.7K00
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行
文章目录

  • 一 Log4J2 相关概念及基本特点
  • Spring Boot3 中启用Log4J2的pom.xml配置
  • 三 application.properties 的配置
  • 四 完整配置

一 Log4J2 相关概念及基本特点

Log4J2是Apache Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升。 Logger:日志记录器,用于标识日志的来源。常见的有两种:Root和Logger。Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出 Appender:日志输出器,用于将日志记录输出到指定的目标。常见的有三种子节点:Console、RollingFile、File。Console节点用来定义输出到控制台的Appender;RollingFile节点用来定义超过指定条件自动删除旧的创建新的Appender;File节点用来定义输出到指定位置的文件的Appender。 Layout:日志格式化器,用于定义日志记录的输出格式。Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出。

二 Spring Boot3 中启用Log4J2的pom.xml配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

排除原依赖中的日志相关包,单独引入Log4J2依赖。

三 application.properties 的配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 控制台输出的字符集
logging.charset.console=UTF-8
# 日志写入文件的字符集
logging.charset.file=UTF-8
# Log4J2自定义配置的路径,放置到resources目录下
logging.config=classpath:logback.xml
# 应用程序包的路径
logging.level.com.test=INFO
# 日志存放路径
logging.file.path=logs/test.log

四 完整配置

配置文件的名称为:logback.xml,放置于resources目录下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml
 version="1.0" encoding="UTF-8"?>
 <!--status:用来指定log4j2本身的打印日志的级别,monitorinterval:用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s-->
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="logDir">logs</Property>
        <Property name="logFile">cmams</Property>
        <Property name="level">DEBUG</Property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%-4level] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %logger{96}:%line - %msg%n"/>
            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>
        <RollingFile name="File" fileName="${logDir}/${logFile}.log"
                     filePattern="${logDir}/${logFile}-%d{yyyy-MM-dd}-%i.log.gz">
            <!--日志输出格式-->
            <PatternLayout pattern="[%-4level] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %logger{96}:%line - %msg%n"/>
            <!--满足任何一个policy即进行归档-->
            <Policies>
                <!--当前日志与开始日期不匹配(RollingFile中配置的filePattern中配置的最小时间单位不匹配时)时进行归档-->
                <TimeBasedTriggeringPolicy/>
                <!--文件超过512M进行归档,SizeBasedTriggeringPolicy规定了当日志文件达到了指定的size时,触发rollover操作。size参数可以用KBMBGB等做后缀来指定具体的字节数,如20MB-->
                <SizeBasedTriggeringPolicy size="64MB"/>
            </Policies>
            <!--归档的文件最大数量,max参数指定了计数器的最大值。一旦计数器达到了最大值,过旧的文件将被删除。-->
            <DefaultRolloverStrategy max="20">
                <!--删除规则-->
                <Delete basePath="${logDir}" maxDepth="2">
                    <!--匹配文件规则-->
                    <IfFileName glob="*.log.gz">
                        <IfLastModified age="60d">
                            <IfAny>
                                <!--logDir下文件总大小超过5GB,进行删除-->
                                <IfAccumulatedFileSize exceeds="5GB"/>
                                <!--logDir下文件总数量超过100,进行删除-->
                                <IfAccumulatedFileCount exceeds="100"/>
                            </IfAny>
                        </IfLastModified>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
    <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->
        <Logger name="com.cxwn.cmams" level="${level}" additivity="false">
            <AppenderRef ref="File"/>
            <AppenderRef ref="Console"/>
        </Logger>
        <Logger name="org.springframework" level="ERROR" additivity="false">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Logger>
        <Root level="WARN">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
不服SOLO:腾讯绝悟AI击败王者荣耀顶尖职业玩家,论文入选AAAI,未来将开源
围棋被攻克之后,多人在线战术竞技游戏(MOBA)已经成为测试检验前沿人工智能的动作决策和预测能力的重要平台。基于腾讯天美工作室开发的热门 MOBA 类手游《王者荣耀》,腾讯 AI Lab 正努力探索强化学习技术在复杂环境中的应用潜力。本文即是其中的一项成果,研究用深度强化学习来为智能体预测游戏动作的方法,该论文已被 AAAI-2020 接收。
机器之心
2019/12/25
1.4K0
不服SOLO:腾讯绝悟AI击败王者荣耀顶尖职业玩家,论文入选AAAI,未来将开源
让AI学会打王者,有什么用?
作为目前全球最负盛名的人工智能盛会之一,NeurIPS在每年年末都是计算机科学领域瞩目的焦点。被NeurIPS接收的论文,代表着当今神经科学和人工智能研究的最高水平,也反映着行业趋势的变化。
新智元
2023/01/08
4780
让AI学会打王者,有什么用?
马化腾的2万不好赚!绝悟AI稳如猛虎,人类王者被虐成狗
下一分钟,绝悟又在下路纠集4打2拿到2人头,一下就把差距拉到4:0,还拆了一个塔。
量子位
2021/07/19
4780
腾讯AI足球队夺冠Kaggle竞赛,绝悟强化学习方案迁移至足球队
12月30日,腾讯宣布其人工智能球队摘得首届谷歌足球Kaggle竞赛冠军。该冠军球队来自腾讯AI Lab研发的绝悟WeKick版本,凭借1785.8的总分在与全球顶级技术团队的竞技中以显著优势胜出。
AI科技大本营
2021/01/21
1.2K0
腾讯AI Lab绝悟团队夺冠Kaggle足球AI竞赛
Google Research 与英超曼城俱乐部在 Kaggle 平台上联合举办的 11v11 足球 AI 竞赛 Google Football 近日宣布最终结果:腾讯 AI Lab 绝悟 WeKick 版本(下称绝悟)以 1785.8 的分数获得冠军,且相比于其它队伍优势非常明显。
CV君
2021/01/05
1.1K0
腾讯AI Lab绝悟团队夺冠Kaggle足球AI竞赛
7 Papers | 腾讯王者荣耀绝悟AI;ICLR高分论文Reformer
论文 1:Mastering Complex Control in MOBA Games with Deep Reinforcement Learning
机器之心
2019/12/31
2.6K0
7 Papers | 腾讯王者荣耀绝悟AI;ICLR高分论文Reformer
我和AI打了六局王者荣耀,心态崩了
PVP对战手游王者荣耀在五一节期间上线了一种新玩法——挑战 · 绝悟,也就是5人组队和5个AI对战。
量子位
2020/05/19
4890
我和AI打了六局王者荣耀,心态崩了
王者荣耀AI绝悟如何选英雄?腾讯AI Lab新研究揭秘
腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。
磐创AI
2021/01/12
8360
王者荣耀AI绝悟如何选英雄?腾讯AI Lab新研究揭秘
腾讯AI×王者荣耀「绝悟」项目首亮相:KPL秋季决赛击败顶尖战队
据机器之心了解,这是腾讯 AI Lab 与王者荣耀共同探索的研究项目——策略协作型 AI「绝悟」首次露面,并于昨天在KPL秋季决赛接受前职业 KPL 选手辰鬼、零度和职业解说白乐、九天和立人组成的人类战队(平均水平超过 99% 玩家)的水平测试。最终 AI 战队获得胜利。这是继围棋 AI「绝艺」后,腾讯 AI 在深度学习与强化学习领域的又一项前沿研究。
机器之心
2019/01/02
1.6K0
腾讯AI击败王者荣耀职业队,全靠自学、策略清奇,一天训练量为人类440年
一场激烈的对战正在进行,左侧是五位人类职业电竞高手组成的赛区联队,另一方是……嗯?他们的对手没有出场?五个座椅空空荡荡?
量子位
2019/08/05
5900
腾讯AI击败王者荣耀职业队,全靠自学、策略清奇,一天训练量为人类440年
AI算法龙虎榜 | 190804更新
No.1 策略协作型AI:绝悟,王者荣耀5V5战胜职业选手,504场1V1顶级业余玩家胜率99.8%
用户7623498
2020/08/04
6630
王者荣耀:在绝悟上进行监督学习
《Supervised learning achieves human-level performance in MOBA games: A case study of honor of kings》
算法一只狗
2022/11/04
9970
清华等世界12所顶尖高校学霸组团「打王者」,竟是为了搞科研?
---- 新智元报道   编辑:好困 桃子 【新智元导读】见过学霸打王者的样子吗?这不,清华、中科大、耶鲁等世界12所顶尖高校学霸集结,一来打王者,二来搞科研。 之前凑在一起「打王者」的学霸又来了! 成都大运会开幕在即,「世界大学生数智竞技邀请赛」正式启动。 国际级规模的大赛共邀请了12支队伍(包含中国大陆地区4所高校、中国港澳台地区及海外8所高校)参加。 每支队伍都需要训练三位英雄,并在之后让自己的AI进行「3V3」的对战,而获得冠军的团队可获得高达20万的奖金。 在此前的1V1中,各大高校的AI
新智元
2022/03/21
4960
腾讯绝悟AI完全体限时开放体验,研究登上国际顶会与顶刊
感谢阅读腾讯AI Lab微信号第112篇文章。本文将介绍绝悟 AI 完全体升级版本的技术方法,也欢迎读者到王者荣耀 app 亲身体验其技术实力。 腾讯 AI Lab 宣布与王者荣耀联合研发的策略协作型 AI“绝悟”推出升级版本。 创新算法突破了可用英雄限制(英雄池数量从40增为100+),让 AI 完全掌握所有英雄的所有技能,能应对高达10的15次方的英雄组合数变化; 优化了禁选英雄(BanPick,简称BP)博弈策略,能综合自身技能与对手情况等多重因素派出最优英雄组合。 相关研究已被 AI 顶级会议 N
腾讯技术工程官方号
2020/12/01
1.5K0
腾讯 AI「绝悟」KPL 击败职业玩家联队,晋升王者荣耀电竞职业水平
「绝悟」是腾讯 AI Lab 与王者荣耀团队共同探索的前沿研究项目,在王者荣耀世界冠军杯半决赛的特设环节中,这一人工智能在职业选手赛区联队带来的 5v5 水平测试中获胜,首次在王者荣耀游戏中击败了现役职业玩家。
机器之心
2019/08/05
2.1K0
腾讯 AI「绝悟」KPL 击败职业玩家联队,晋升王者荣耀电竞职业水平
腾讯AI制霸王者荣耀,世界杯5V5 「绝悟」绝杀职业玩家,1天训练强度超人类440年
昨日,腾讯AI Lab研发的智能体「绝悟」在王者荣耀世界冠军杯半决赛特设环节,与职业选手职业选手赛区联队的5v5对决中获胜!
代码医生工作室
2019/08/06
8010
王者荣耀「绝悟」完全体上线:解禁全英雄,在线约你来战
木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 腾讯AI Lab与王者荣耀联合研发的策略协作型 AI「绝悟」,全英雄池解禁,升级成「完全体」了。 11月28日到30日,将限时开放三天公众体验。 这次的升级,带来了新算法,除了突破了可用英雄限制,还优化了禁选英雄博弈策略。 而与此次升级相关的研究,也在近期被NeurIPS 2020和TNNLS分别收录。 在这两篇研究中,分别介绍了「绝悟」进行强化训练和监督训练具体细节。 那么,「完全体绝悟」是如何训练出来的呢? 就让我们顺着这次的论文,好好来了
量子位
2023/03/10
3420
王者荣耀「绝悟」完全体上线:解禁全英雄,在线约你来战
用人工智能打王者荣耀:匹茨堡大学&腾讯AI Lab为游戏AI引入MCTS方法
选自arXiv 作者:Daniel R. Jiang、Emmanuel Ekwedike、Han Liu 机器之心编译 参与:路、李泽南 如果让人工智能来打王者荣耀,应该选择什么样的英雄?近日,匹茨堡大学和腾讯 AI Lab 提交的论文给了我们答案:狄仁杰。在该研究中,人们尝试了 AlphaGo Zero 中出现的蒙特卡洛树搜索(MCTS)等技术,并取得了不错的效果。 对于研究者而言,游戏是完美的 AI 训练环境,教会人工智能打各种电子游戏一直是很多人努力的目标。在开发 AlphaGo 并在围棋上战胜人类顶
机器之心
2018/06/08
7540
第二届腾讯“开悟”大赛初赛放榜,强化学习研究还能这么快乐?
一场发生在王者峡谷的赛事,背后竟然惊动了清华、北大、中科大、电子科技大学……等20多所名校的学生和老师? 这不是一场简单的电竞赛事,而是一场AI领域的科研赛事——由腾讯AI Lab、王者荣耀、腾讯高校合作、腾讯游戏学院等联合举办,由腾讯云计算提供底层资源支持的第二届腾讯“开悟”多智能体强化学习大赛(简称开悟大赛)。 不同于常规电竞比赛,选手们并不是亲手操作英雄去战斗,他们的定位更类似于教练,通过编写的程序利用AI进行对抗。赛事基于“开悟”AI开放研究平台举行,依托于腾讯太极机器学习平台,选手可获取“开悟
腾讯高校合作
2021/11/12
7850
在《我的世界》当矿工,腾讯「绝悟」夺冠NeurIPS MineRL 挑战赛
近年来,基于强化学习的计算工具在包括图像分类和机器人对象操作在内的众多任务中取得了显著成果。与此同时,计算机科学家也一直在训练强化学习模型来玩特定的人类游戏和电子游戏。
机器之心
2021/12/13
6560
在《我的世界》当矿工,腾讯「绝悟」夺冠NeurIPS MineRL 挑战赛
推荐阅读
不服SOLO:腾讯绝悟AI击败王者荣耀顶尖职业玩家,论文入选AAAI,未来将开源
1.4K0
让AI学会打王者,有什么用?
4780
马化腾的2万不好赚!绝悟AI稳如猛虎,人类王者被虐成狗
4780
腾讯AI足球队夺冠Kaggle竞赛,绝悟强化学习方案迁移至足球队
1.2K0
腾讯AI Lab绝悟团队夺冠Kaggle足球AI竞赛
1.1K0
7 Papers | 腾讯王者荣耀绝悟AI;ICLR高分论文Reformer
2.6K0
我和AI打了六局王者荣耀,心态崩了
4890
王者荣耀AI绝悟如何选英雄?腾讯AI Lab新研究揭秘
8360
腾讯AI×王者荣耀「绝悟」项目首亮相:KPL秋季决赛击败顶尖战队
1.6K0
腾讯AI击败王者荣耀职业队,全靠自学、策略清奇,一天训练量为人类440年
5900
AI算法龙虎榜 | 190804更新
6630
王者荣耀:在绝悟上进行监督学习
9970
清华等世界12所顶尖高校学霸组团「打王者」,竟是为了搞科研?
4960
腾讯绝悟AI完全体限时开放体验,研究登上国际顶会与顶刊
1.5K0
腾讯 AI「绝悟」KPL 击败职业玩家联队,晋升王者荣耀电竞职业水平
2.1K0
腾讯AI制霸王者荣耀,世界杯5V5 「绝悟」绝杀职业玩家,1天训练强度超人类440年
8010
王者荣耀「绝悟」完全体上线:解禁全英雄,在线约你来战
3420
用人工智能打王者荣耀:匹茨堡大学&腾讯AI Lab为游戏AI引入MCTS方法
7540
第二届腾讯“开悟”大赛初赛放榜,强化学习研究还能这么快乐?
7850
在《我的世界》当矿工,腾讯「绝悟」夺冠NeurIPS MineRL 挑战赛
6560
相关推荐
不服SOLO:腾讯绝悟AI击败王者荣耀顶尖职业玩家,论文入选AAAI,未来将开源
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验