在 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
命令并設置日志級別。選擇適合你應用程序的方法進行配置即可。