在 CentOS 系统中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接也不会终止。默认情况下,nohup
会将输出重定向到 nohup.out
文件,并且不会显示日志级别。如果你想设置日志级别,可以通过以下几种方法:
nohup
和 &>
你可以将标准输出和标准错误都重定向到一个文件,并在命令前加上日志级别的前缀。例如:
nohup your_command > log_file.log 2>&1 &
然后,你可以在 your_command
中添加日志级别的前缀。例如,如果你使用的是一个支持日志级别的应用程序,可以在启动命令中指定日志级别:
nohup your_command --log-level=INFO > log_file.log 2>&1 &
syslog
如果你的应用程序支持将日志发送到 syslog,你可以配置 syslog 来记录不同级别的日志。编辑 /etc/rsyslog.conf
或 /etc/rsyslog.d/50-default.conf
文件,添加如下内容:
# 设置日志级别为 INFO
local0.* /var/log/your_application.log
& stop
然后重启 rsyslog 服务:
sudo systemctl restart rsyslog
在你的应用程序中配置日志输出到 syslog:
import logging
import logging.handlers
logger = logging.getLogger('your_application')
logger.setLevel(logging.INFO)
handler = logging.handlers.SysLogHandler(address='/dev/log')
handler.setLevel(logging.INFO)
logger.addHandler(handler)
logger.info('This is an info message')
logrotate
如果你需要管理日志文件的大小和轮转,可以使用 logrotate
工具。创建一个 logrotate
配置文件,例如 /etc/logrotate.d/your_application
:
/var/log/your_application.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
}
然后确保 logrotate
服务正在运行:
sudo systemctl enable logrotate
sudo systemctl start logrotate
如果你使用的是第三方日志库(如 log4j、logback 等),可以在应用程序的配置文件中设置日志级别。例如,对于 log4j,可以在 log4j.properties
文件中设置:
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/your_application.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
然后启动你的应用程序,日志将会按照配置的级别和格式记录。
通过以上方法,你可以在 CentOS 系统中使用 nohup
命令并设置日志级别。选择适合你应用程序的方法进行配置即可。