首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
如何在CentOS上设置Java日志归档

如何在CentOS上设置Java日志归档

热心网友
74
转载
2026-04-23

在CentOS上设置Ja va应用程序的日志归档

对于在CentOS上运行的Ja va应用来说,日志归档是个绕不开的运维话题。方法其实有好几种,具体怎么选,很大程度上取决于你用的日志框架和应用本身的特点。下面咱们就来聊聊几种主流方案。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

如何在CentOS上设置Ja va日志归档

使用Log4j或Logback进行日志归档

如果你的项目用的是Log4j或者Logback这类成熟的日志框架,那最直接的办法就是在配置文件里动手脚,设定好归档策略。

Log4j配置示例

操作起来很简单:编辑你的log4j.properties或者log4j2.xml文件,然后添加或修改Appender配置,重点使用RollingFileAppenderDailyRollingFileAppender来实现滚动归档。

先看一个log4j.properties的例子:

log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/myapp.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

如果是XML配置的Log4j 2,写法会稍有不同:


  
    
      
        %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
      
      
        
      
      
    
  
  
    
      
    
  

使用Systemd进行日志管理

从CentOS 7开始,系统服务管理就交给了systemd。这时候,我们可以换个思路,利用systemd自带的systemd-journald来统一管理Ja va应用的日志。这个方法尤其适合那些被打包成服务来运行的应用。

具体怎么做呢?分四步走:

  1. 首先,确保你的Ja va应用是把日志打到标准输出(stdout)或标准错误(stderr)的。
  2. 接着,为你的应用创建一个systemd服务文件。

比如,在/etc/systemd/system/myapp.service里可以这样写:

[Unit]
Description=My Ja va Application
After=network.target

[Service]
User=myuser
ExecStart=/usr/bin/ja va -jar /path/to/myapp.jar
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. 配置文件写好之后,重新加载systemd并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
  1. 之后查看日志就非常方便了,一条命令搞定:
journalctl -u myapp -f

使用Logrotate进行日志轮转

当然,别忘了CentOS上那个老牌且强大的日志管理工具——Logrotate。它独立于应用之外,通过轮转和压缩来管理日志文件,用起来非常灵活。

配置起来也就两步:

  1. 为你的应用创建或编辑一个Logrotate配置文件,通常放在/etc/logrotate.d/目录下。

例如,创建文件/etc/logrotate.d/myapp,内容如下:

/var/log/myapp.log {
    daily
    missingok
    rotate 10
    compress
    notifempty
    create 640 root adm
}
  1. 确保Logrotate能定期执行。通常它通过cron任务自动运行,你也可以手动触发测试:
sudo logrotate /etc/logrotate.conf

好了,几种主流方法都在这儿了。从在应用内配置日志框架,到借助systemd统一管理,再到使用系统级的Logrotate工具,各有各的适用场景。关键是根据你的实际需求,选择最顺手、最稳妥的那一种来配置。

来源:https://www.yisu.com/ask/12380335.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

centos iptables如何防止SYN Flood攻击
网络安全
centos iptables如何防止SYN Flood攻击

CentOS系统下利用iptables防御SYN Flood攻击实战指南 在网络安全领域,SYN Flood攻击堪称一种经典且顽固的威胁。它利用TCP协议的三次握手缺陷,通过海量伪造的SYN请求耗尽服务器资源,导致服务瘫痪。对于运行CentOS系统的管理员而言,内置的iptables防火墙是抵御此类

热心网友
04.23
Golang在CentOS打包时如何管理内存
编程语言
Golang在CentOS打包时如何管理内存

在CentOS上使用Golang进行打包时如何管理内存 在CentOS环境下对Golang应用进行打包,内存管理是个绕不开的话题。这不仅仅关乎运行时效率,编译阶段的内存消耗同样值得关注。掌握几个关键策略,就能让整个过程更加顺畅。 优化Go程序的内存使用 程序本身的内存效率是根本。与其事后补救,不如从

热心网友
04.23
Golang日志在CentOS中如何进行日志压缩
编程语言
Golang日志在CentOS中如何进行日志压缩

在CentOS系统中,使用Golang编写的应用程序可以通过以下步骤进行日志压缩 想让你的Golang应用日志管理得更清爽、更节省空间吗?其实,在CentOS系统上实现日志的自动压缩和轮转,有一套非常成熟且高效的标准流程。下面,我们就来一步步拆解这个方案。 第一步:确保日志输出到文件 首先,你的Go

热心网友
04.23
CentOS中如何配置Golang日志的格式化输出
编程语言
CentOS中如何配置Golang日志的格式化输出

在CentOS中配置Golang日志的格式化输出 想让你的Golang应用在CentOS服务器上吐出更清晰、更规范的日志吗?标准的log包输出有时显得过于简略,缺乏时间戳、级别等关键上下文信息。别担心,通过自定义格式化,完全可以打造出便于监控和排查问题的日志格式。下面就来一步步拆解这个配置过程。 第

热心网友
04.23
如何在CentOS上设置Java日志归档
编程语言
如何在CentOS上设置Java日志归档

在CentOS上设置Ja va应用程序的日志归档 对于在CentOS上运行的Ja va应用来说,日志归档是个绕不开的运维话题。方法其实有好几种,具体怎么选,很大程度上取决于你用的日志框架和应用本身的特点。下面咱们就来聊聊几种主流方案。 使用Log4j或Logback进行日志归档 如果你的项目用的是L

热心网友
04.23

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

mysql数据库主从延迟严重如何监控与解决_分析从库同步线程状态
数据库
mysql数据库主从延迟严重如何监控与解决_分析从库同步线程状态

MySQL主从延迟:别被“0延迟”骗了,这才是真实监控与排查指南 说起MySQL主从延迟,很多人的第一反应就是去查SHOW SLA VE STATUS里的那个Seconds_Behind_Master。但经验告诉我们,这个最显眼的数字,往往也是最会“撒谎”的。它明明显示为0,业务侧却反馈数据没同步过

热心网友
04.23
mysql如何利用锁函数实现应用级锁定_mysql get_lock函数实践
数据库
mysql如何利用锁函数实现应用级锁定_mysql get_lock函数实践

MySQL GET_LOCK():一个被误解的“分布式锁”工具 MySQL GET_LOCK() 能不能当分布式锁用 开门见山地说,直接把它当作生产级的分布式锁来用,风险极高。这个函数的设计初衷,其实是为了在单个MySQL实例内部,进行一些轻量级的协作控制。为什么这么说?原因很具体:首先,GET_L

热心网友
04.23
mysql如何查看当前执行的进程_使用show processlist查看状态
数据库
mysql如何查看当前执行的进程_使用show processlist查看状态

mysql如何查看当前执行的进程_使用show processlist查看状态 show processlist 返回的 State 字段到底代表什么 首先得澄清一个普遍的误解:State 字段显示的可不是什么“进程状态”,它真正揭示的,是当前线程在执行 SQL 时,其内部正处于哪个**具体的工作阶

热心网友
04.23
屎币与狗狗币的游戏规则,从迷因到市场的生存逻辑
web3.0
屎币与狗狗币的游戏规则,从迷因到市场的生存逻辑

在加密货币那个充满野性与想象力的世界里,“屎币”(Shiba Inu)和狗狗币(Dogecoin)绝对是两个无法被忽视的“异类”。它们从网络迷因中诞生,因社区狂欢而崛起,最终在残酷的市场博弈中,演化出了一套属于自己的独特生存法则。这套法则既包含了加密货币的底层逻辑,又被“去中心化”、“社区驱动”这些

热心网友
04.23
mysql如何限制特定IP的访问权限_配置GRANT与防火墙策略
数据库
mysql如何限制特定IP的访问权限_配置GRANT与防火墙策略

MySQL访问控制:GRANT与防火墙的协同策略 MySQL GRANT 语句中指定 IP 时,为什么 localhost 和 127 0 0 1 不等价? 这里有个关键细节常被忽略:MySQL的用户账户其实是一个二元组,由 user @ host 共同构成。其中, localhost 是一个特殊标

热心网友
04.23