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

Java中将System.out内容写入Tomcat日志

在Tomcat中将System.out.print()内容写入日志文件,有几种方法可以实现:

方法1:配置Tomcat的logging.properties

修改Tomcat的conf/logging.properties文件:

# 将System.out重定向到日志文件
handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler# Catalina日志处理器
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.formatter = org.apache.juli.OneLineFormatter# 控制台处理器(捕获System.out)
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter

方法2:使用日志框架(推荐)

在代码中使用标准的日志框架,如Log4j2、Logback或SLF4J:

使用Log4j2示例:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class YourClass {private static final Logger logger = LogManager.getLogger(YourClass.class);public void yourMethod() {// 替换 System.out.print(jsonObject);logger.info("JSON内容: {}", jsonObject.toString());}
}

使用SLF4J + Logback:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class YourClass {private static final Logger logger = LoggerFactory.getLogger(YourClass.class);public void yourMethod() {logger.info("JSON对象: {}", jsonObject);}
}

方法3:重定向System.out

在Servlet或Filter中重定向System.out:

public class LoggingFilter implements Filter {private PrintStream originalOut;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 创建指向Tomcat日志文件的PrintStreamtry {String logPath = System.getProperty("catalina.base") + "/logs/myapp.out";PrintStream fileOut = new PrintStream(new FileOutputStream(logPath, true));originalOut = System.out;System.setOut(fileOut);} catch (FileNotFoundException e) {e.printStackTrace();}}@Overridepublic void destroy() {if (originalOut != null) {System.setOut(originalOut);}}
}

方法4:配置log4j2.xml

创建src/main/resources/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><File name="FileAppender" fileName="${sys:catalina.base}/logs/myapp.log"><PatternLayout><Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</Pattern></PatternLayout></File><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="info"><AppenderRef ref="FileAppender"/><AppenderRef ref="Console"/></Root></Loggers>
</Configuration>

使用日志框架可以更专业地管理日志,而不是依赖System.out这种调试性质的输出方式。

http://www.dtcms.com/a/574128.html

相关文章:

  • 做国外的营销的网站官方网站撰写策划书
  • dmp导出到asm可以吗?
  • lprm命令 – 移除打印队列中的任务
  • BuildingAI二开 用户信息增加Coze套餐名称和剩余天数PRD
  • 网站建设有几种方法如何建设一个网站站
  • 格朗图手表网站网站建设服务亮点
  • 银行“两地三中心”网络高可用运维监控方案
  • 基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 沈阳餐饮网站建设wordpress搜索功能调用
  • 网站建设公司如何签单上海的设计网站有哪些内容
  • 断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析
  • 2025字节跳动工程训练营(测开)
  • 三轴云台之磁场定向控制技术
  • 盘县网站建设福州网站设计公司
  • MiniEngine学习笔记 : RootSignature
  • 企业建设门户网站成本如何外贸网店建站模板
  • 吴川手机网站建设公司招代理最好的推广方式
  • mid360实现路径规划
  • 下载了网站建设asp网站建设框架注意事项
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(14):文法和单词-第三课
  • soho 网站建设网站上搜索的动图怎么做壁纸
  • 评测:10 款安卓备份软件和应用(最新资讯)
  • Responses API——OpenAI 下一代智能体与多模态 API 完整开发者指南
  • 自然语言处理实战——基于IMDB影评的情感分析
  • 邹平网站建设微网站建设比较全面的是
  • Linux系统入门:进程控制
  • wordpress 微信绑定域名咸宁网站seo排名
  • STM32——定时器
  • 贵港购物网站开发设计医院网站建设ppt
  • OmniFocus:专为 macOS 与 iOS 打造的专业级任务管理利器