宝塔面板中为多网站配置独立日志需分三步:一、在站点设置中修改access_log和error_log路径为带域名的子目录;二、通过Nginx变量$logfile实现按日期自动分片;三、用计划任务对混合日志按站点名切割归档。

如果您在宝塔面板中管理多个网站,但所有访问日志默认写入同一目录且文件名无站点标识,则难以区分各站点的独立流量行为。以下是为网站配置独立日志并实现流量记录分离的具体操作步骤:
一、通过网站设置页启用独立日志路径
该方法直接修改单个站点的Nginx或Apache日志输出路径,使访问日志与错误日志均按站点隔离存储,避免跨站混写。
1、登录宝塔面板,点击左侧导航栏的网站,进入网站列表页面。
2、找到目标站点,点击其域名右侧的设置按钮。
3、在弹出窗口中,点击左侧导航栏的网站日志,进入日志配置页。
4、点击右上角的配置文件按钮,打开当前站点的Web服务配置文件。
5、定位到access_log和error_log指令行,将原路径如/www/wwwlogs/10zhan.com.log替换为带站点标识的路径,例如:
— 访问日志:access_log /www/wwwlogs/10zhan.com/access.log;
— 错误日志:error_log /www/wwwlogs/10zhan.com/error.log;
6、确认目录/www/wwwlogs/10zhan.com/已存在;若不存在,先返回「文件」菜单,手动创建该子目录并设置权限为755。
7、保存配置文件,随后点击页面右上角的重载配置按钮,使Nginx或Apache立即生效新日志路径。
二、使用Nginx变量实现按日期自动分片的独立日志
该方法在站点级日志路径基础上,进一步引入时间变量,使每个站点每天生成唯一命名的日志文件(如access-2026-03-14.log),便于归档与排查。
1、进入宝塔面板「网站」→ 选择目标站点 → 「设置」→ 「配置文件」。
2、在配置文件顶部的http{...}块内(位于所有server{...}之前),插入以下Nginx变量定义:
map $time_iso8601 $logdate {
~^(?
default 'date-not-found';
}
3、在同一http{...}块内,定义日志格式(若尚未自定义):
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
4、回到该站点的server{...}配置段,将access_log指令修改为:
access_log /www/wwwlogs/10zhan.com/access-$logdate.log main;
5、将error_log指令修改为:
error_log /www/wwwlogs/10zhan.com/error.log;
6、保存配置,点击重载配置,新请求将按日期写入对应站点子目录下的独立日志文件。
三、通过计划任务执行日志切割并保留站点结构
该方法不修改Web服务配置,而是利用宝塔内置的日志切割功能,对已生成的混合日志按站点名称识别并切分,适用于已存在大量未分离日志的场景。
1、登录宝塔面板,点击左侧导航栏的计划任务。
2、点击添加计划任务按钮。
3、在「任务类型」下拉菜单中选择日志切割。
4、在「执行周期」中设定切割频率,例如选择每天,并指定具体时间为服务器低峰期(如02:00)。
5、在「切割日志」选项中,**不选择“所有”**,而应逐个勾选目标站点对应的原始日志文件,例如:
— 10zhan.com.log
— blog.example.com.log
6、在「保留份数」中输入数字,例如7,表示仅保留最近7份切割后的日志文件。
7、点击添加任务,系统将在设定时间自动将所选日志按站点名前缀归类,并压缩存档至/www/backup/logs/目录下对应子路径。










