logback 配置将IDEA 的 console log 存入到文件

news/2024/10/10 2:30:58/文章来源:https://www.cnblogs.com/gongchengship/p/18455493

为了将日志输出从 IDEA 的 Console 重定向到文件,你可以使用 Logback 作为日志框架,并通过配置文件来实现这一功能。下面是一个示例 logback.xml 配置文件,它会将日志同时输出到 Console文件 中。

logback.xml 配置文件示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 控制日志文件保存路径和文件名 --><property name="LOG_FILE" value="logs/app.log" /><property name="ERROR_LOG_FILE" value="logs/error.log" /><!-- 控制台输出配置 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 普通日志文件输出配置 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件路径 --><file>${LOG_FILE}</file><!-- 文件滚动策略(按照文件大小滚动) --><rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedRollingPolicy"><fileNamePattern>logs/app.%i.log</fileNamePattern><!-- 文件最大尺寸,达到 10MB 后创建新文件 --><maxFileSize>10MB</maxFileSize><!-- 保留的最大历史日志文件数量 --><maxHistory>5</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 错误日志单独记录 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${ERROR_LOG_FILE}</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedRollingPolicy"><fileNamePattern>logs/error.%i.log</fileNamePattern><maxFileSize>10MB</maxFileSize><maxHistory>5</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><!-- 只记录 ERROR 级别的日志 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- Root logger 配置:输出到控制台和文件 --><root level="INFO"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" /><appender-ref ref="ERROR_FILE" /></root></configuration>

配置说明:

  1. Console 输出:使用 ConsoleAppender,将日志输出到 IDEA 的 Console 中。

  2. 日志文件输出:使用 RollingFileAppender,日志输出到指定的文件中,同时设定了滚动策略(即文件达到一定大小后创建新文件)。

    • LOG_FILE 是存储普通日志的文件路径(如 logs/app.log)。
    • ERROR_LOG_FILE 是存储错误级别日志的文件路径(如 logs/error.log)。
    • 滚动策略使用 SizeBasedRollingPolicy,当日志文件大小超过 10MB 时会滚动创建新的日志文件,并保留最近的 5 个日志文件。
  3. 日志格式:日志格式化器 PatternLayout 使用如下格式输出:

    • %d{yyyy-MM-dd HH:mm:ss}:日期时间
    • %thread:线程名称
    • %level:日志级别(INFO、ERROR 等)
    • %logger{36}:日志记录器的名称
    • %msg:日志消息
    • %n:换行符
  4. 日志级别root 记录器设置为 INFO 级别,输出到控制台和文件。如果想调试,可以将 level="INFO" 改成 DEBUG 以输出更多信息。

logback.xml 文件集成到项目中:

  1. 在你的 src/main/resources 目录下创建一个文件夹,命名为 resources,并将此配置文件命名为 logback.xml,放置到 src/main/resources 目录下。

  2. 确保你的 pom.xml 或者 build.gradle 文件中引入了 Logback 依赖。如果没有的话,添加以下依赖。

Maven 依赖:

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version> <!-- 替换为最新版本 -->
</dependency>

Gradle 依赖:

implementation 'ch.qos.logback:logback-classic:1.2.3'  // 替换为最新版本

如何验证:

  • 运行程序后,日志将同时输出到 IDEA 的控制台和指定的文件。
  • 普通日志记录在 logs/app.log 中,错误级别日志单独记录在 logs/error.log 中。

通过这个 logback.xml 配置文件,你可以让程序运行时的日志记录到指定的文件,并且同时控制日志输出的格式、滚动策略、日志级别等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810882.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两台iStoreOS路由器通过wireguard实现异地组网

本人博客原文:https://drcodes.cn/2024/09/12/两台istoreos路由器通过wireguard实现异地组网/ 一、前言 我在家中和单位宿舍申请了两条联通千兆宽带,每条均有公网ip,如何实现更多玩法呢?最近折腾了一下异地组网,这里简单记录一下 环境:路由器A,内网ip为192.168.1.1,系统…

1panel搭建frp服务端并使用openresty反向代理实现https访问

前言 这次国庆节回老家发现家里的路由器居然是我去年带过去的斐讯K2p,已经刷了openwrt,于是想着有没有更多玩法?因为家里的宽带是移动宽带,没有公网IP,所以来折腾一下frp内网穿透。 我想实现的目标是:通过不同的三级域名,来访问不同的服务。例如,访问https://op.frp.xx…

004、v3admin学习,使用ci4搭建后端服务器

1、按照php环境和composer,输入cmd的composer命令,版本是2.7.9 2、在工作目录,输入命令行composer create-project codeigniter4/appstarter ci4 ,会全自动创建工程 3、把composer下来的文件,拷贝到外面工程中。 4、用phpstorm打开工程,更新一下依赖包 5、用小皮桌面开启p…

UNRAID下安装Virtual DSM

本文基于【完结】Virtual DSM 逆向笔记 (基于libvirt的安装及升级) (jxcn.org) 感谢chk-jxcn的分享! 一、安装镜像的准备 链接:https://pan.baidu.com/s/16I89NHPTW6TDx7ACh67yiA 提取码:7hkq 下载下来的镜像是原作者chk-jxcn(jxcn.org)从 DSM 中提取出的 VDSM 7.0 的安装镜…

house_of_muney [2023CISCN]

house_of_muney 首先介绍一下house of muney 这个利用原理: 在了解过_dl_runtime_resolve的前提下,当程序保护开了延迟绑定的时候,程序第一次调用相关函数的时候会执行下面的命令 push n push ModuleID jmp _dl_runtime_resolve 这里的n对应的是这个符号在rel.plt重定位表中…

C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式

分享删除字符串最后一个字符的多种实现方法,包括字符串、StringBuilder、Array、Linq等方式,并进行性能测试。结果显示字符串方式性能最优,但了解多种方法有助于选择最合适的方法。今天想通过和大家分享如何删除字符串最后一个字符的N种实现方法,来回顾一些基础知识点。 01…

NET Core 基础 - 删除字符串最后一个字符的七大类N种实现方式

分享删除字符串最后一个字符的多种实现方法,包括字符串、StringBuilder、Array、Linq等方式,并进行性能测试。结果显示字符串方式性能最优,但了解多种方法有助于选择最合适的方法。今天想通过和大家分享如何删除字符串最后一个字符的N种实现方法,来回顾一些基础知识点。 01…

003、v3admin学习,修改全局配置如去掉水印等

1、v3admin打开之后的界面如下 2、修改一下全局通用设置 3、界面如下 4、把app.vue中的这一段注释掉 5、浏览器也就没有弹窗显示了。

在VMware中安装CentOS7(保姆级教程)

centos7下载地址:https://mirrors.aliyun.com/centos/7/isos/x86_64/1、打开“VMware Workstation“软件,选择”创建新的虚拟机 ![ 2、选择“典型”选项,然后下一步。3、选择“稍后安装操作系统”,点击下一步。4、客户机操作选择“Linux”,版本选择“CentOS 7 64位”,点击…

002、v3admin学习,设置npm的端口和ip

1、使用命令行npm run dev启动v3admin的时候,会有多个ip地址以及端口 2、在vite.config.ts中,修改host为false和port为1314 3、ctrl+c结束端口,并运行npm run dev来启动。可以看到只有一个 http://localhost:1314/ 端口启动了。 4、浏览器打开,可以正常显示。5、效果如下:…

001、v3admin学习,下载并这次启动运行v3admin

1、下载github,并放到自己的项目工程中2、确保直接电脑按照了node.js,输入cmd命令行看node,可以看到node版本是v20 3、在工程目录用命令行输入 npm update 4、在命令行继续输入 npm run dev5、可以正常登录了。 6、界面内容如下:

《花100块做个摸鱼小网站! 》第七篇—谁访问了我们的网站?

⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → 🐟 摸鱼小网站地址 学代码 → 💻 源码库地址一、前言 大家好呀,我是summo,最近发生了些事情(被裁员了,在找工作中)导致断更了,非常抱歉。刚被裁的时候还是有些难受,而且我还有房贷要还,有些压力,不过…