feat: 添加主机 Cron 列表展示功能
This commit is contained in:
248
app.py
248
app.py
@@ -244,7 +244,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
</div>
|
||||
|
||||
<!-- 统计卡片 -->
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-8">
|
||||
<div class="grid grid-cols-2 md:grid-cols-5 gap-4 mb-8">
|
||||
<div class="card rounded-xl p-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
@@ -281,6 +281,34 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
<i class="ri-terminal-box-line text-3xl text-purple-400 opacity-50"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card rounded-xl p-4">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<p class="text-gray-400 text-sm">系统Cron</p>
|
||||
<p id="systemCronCount" class="text-2xl font-bold text-orange-400">-</p>
|
||||
</div>
|
||||
<i class="ri-timer-line text-3xl text-orange-400 opacity-50"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 系统 Cron 列表 -->
|
||||
<div class="card rounded-xl p-6 mb-8">
|
||||
<div class="flex items-center justify-between mb-4">
|
||||
<h2 class="text-xl font-bold flex items-center gap-2">
|
||||
<i class="ri-timer-line text-orange-400"></i>
|
||||
主机 Cron 列表
|
||||
</h2>
|
||||
<button onclick="loadCrons()" class="btn bg-orange-600 hover:bg-orange-700 px-3 py-1 rounded text-sm flex items-center gap-1">
|
||||
<i class="ri-refresh-line"></i> 刷新
|
||||
</button>
|
||||
</div>
|
||||
<div id="cronsList" class="space-y-3">
|
||||
<div class="text-center py-8 text-gray-400">
|
||||
<i class="ri-loader-4-line text-2xl animate-spin"></i>
|
||||
<p class="mt-2 text-sm">加载中...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
@@ -634,9 +662,84 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
|
||||
// 初始化
|
||||
loadProjects();
|
||||
loadCrons();
|
||||
|
||||
// 每30秒自动刷新
|
||||
setInterval(loadProjects, 30000);
|
||||
|
||||
async function loadCrons() {
|
||||
try {
|
||||
const res = await fetch('/api/crons');
|
||||
const data = await res.json();
|
||||
renderCrons(data.crons);
|
||||
document.getElementById('systemCronCount').textContent = data.crons.length;
|
||||
} catch (e) {
|
||||
console.error('加载Cron失败:', e);
|
||||
document.getElementById('cronsList').innerHTML = `
|
||||
<div class="text-center py-8 text-red-400">
|
||||
<i class="ri-error-warning-line text-2xl"></i>
|
||||
<p class="mt-2 text-sm">加载失败: ${e.message}</p>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
function renderCrons(crons) {
|
||||
const list = document.getElementById('cronsList');
|
||||
|
||||
if (crons.length === 0) {
|
||||
list.innerHTML = `
|
||||
<div class="text-center py-8 text-gray-400">
|
||||
<i class="ri-folder-open-line text-2xl"></i>
|
||||
<p class="mt-2 text-sm">暂无 Cron 任务</p>
|
||||
</div>
|
||||
`;
|
||||
return;
|
||||
}
|
||||
|
||||
const sourceColors = {
|
||||
'user': { bg: 'bg-blue-500/20', text: 'text-blue-400', label: '用户' },
|
||||
'system': { bg: 'bg-red-500/20', text: 'text-red-400', label: '系统' },
|
||||
'cron.d': { bg: 'bg-green-500/20', text: 'text-green-400', label: 'cron.d' }
|
||||
};
|
||||
|
||||
let html = '';
|
||||
crons.forEach((cron, index) => {
|
||||
const sourceInfo = sourceColors[cron.source] || { bg: 'bg-gray-500/20', text: 'text-gray-400', label: cron.source };
|
||||
html += `
|
||||
<div class="bg-gray-800/50 rounded-lg p-3 border border-gray-700">
|
||||
<div class="flex items-start justify-between gap-4">
|
||||
<div class="flex-1">
|
||||
<div class="flex items-center gap-2 mb-2">
|
||||
<span class="px-2 py-0.5 rounded text-xs ${sourceInfo.bg} ${sourceInfo.text}">${sourceInfo.label}</span>
|
||||
${cron.file ? `<span class="text-xs text-gray-500">${cron.file}</span>` : ''}
|
||||
${cron.user ? `<span class="text-xs text-gray-400">用户: ${cron.user}</span>` : ''}
|
||||
</div>
|
||||
<div class="flex items-center gap-3">
|
||||
<code class="text-yellow-400 text-sm font-mono">${cron.expression}</code>
|
||||
<span class="text-gray-500 text-xs">→</span>
|
||||
<span class="text-green-400 text-sm">${cron.description || ''}</span>
|
||||
</div>
|
||||
<div class="mt-2 text-gray-300 text-sm font-mono break-all">
|
||||
${escapeHtml(cron.command)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<span class="text-xs text-gray-500">#${index + 1}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
|
||||
list.innerHTML = html;
|
||||
}
|
||||
|
||||
function escapeHtml(text) {
|
||||
const div = document.createElement('div');
|
||||
div.textContent = text;
|
||||
return div.innerHTML;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -821,6 +924,149 @@ def api_delete_project(project_id):
|
||||
return jsonify({'message': '删除成功'})
|
||||
|
||||
|
||||
def get_system_crons():
|
||||
"""获取系统所有 cron 任务"""
|
||||
crons = []
|
||||
|
||||
# 获取当前用户的 crontab
|
||||
try:
|
||||
result = subprocess.run(
|
||||
"crontab -l 2>/dev/null",
|
||||
shell=True, capture_output=True, text=True, timeout=5
|
||||
)
|
||||
user_crontab = result.stdout.strip()
|
||||
if user_crontab:
|
||||
for line in user_crontab.split('\n'):
|
||||
line = line.strip()
|
||||
if line and not line.startswith('#'):
|
||||
# 解析 cron 行
|
||||
parts = line.split()
|
||||
if len(parts) >= 6:
|
||||
cron_expr = ' '.join(parts[:5])
|
||||
command = ' '.join(parts[5:])
|
||||
crons.append({
|
||||
'source': 'user',
|
||||
'expression': cron_expr,
|
||||
'command': command,
|
||||
'line': line
|
||||
})
|
||||
except:
|
||||
pass
|
||||
|
||||
# 获取系统级 cron (/etc/crontab)
|
||||
try:
|
||||
if os.path.exists('/etc/crontab'):
|
||||
with open('/etc/crontab', 'r') as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
if line and not line.startswith('#'):
|
||||
parts = line.split()
|
||||
if len(parts) >= 7:
|
||||
# 系统 crontab 有额外的 user 字段
|
||||
cron_expr = ' '.join(parts[:5])
|
||||
user = parts[5]
|
||||
command = ' '.join(parts[6:])
|
||||
crons.append({
|
||||
'source': 'system',
|
||||
'expression': cron_expr,
|
||||
'user': user,
|
||||
'command': command,
|
||||
'line': line
|
||||
})
|
||||
except:
|
||||
pass
|
||||
|
||||
# 获取 /etc/cron.d/ 目录下的任务
|
||||
try:
|
||||
cron_d_dir = '/etc/cron.d'
|
||||
if os.path.exists(cron_d_dir):
|
||||
for filename in os.listdir(cron_d_dir):
|
||||
filepath = os.path.join(cron_d_dir, filename)
|
||||
if os.path.isfile(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
if line and not line.startswith('#'):
|
||||
parts = line.split()
|
||||
if len(parts) >= 7:
|
||||
cron_expr = ' '.join(parts[:5])
|
||||
user = parts[5]
|
||||
command = ' '.join(parts[6:])
|
||||
crons.append({
|
||||
'source': 'cron.d',
|
||||
'file': filename,
|
||||
'expression': cron_expr,
|
||||
'user': user,
|
||||
'command': command,
|
||||
'line': line
|
||||
})
|
||||
except:
|
||||
pass
|
||||
|
||||
return crons
|
||||
|
||||
|
||||
def parse_cron_expression(expr):
|
||||
"""解析 cron 表达式为人类可读格式"""
|
||||
parts = expr.split()
|
||||
if len(parts) != 5:
|
||||
return expr
|
||||
|
||||
minute, hour, day, month, weekday = parts
|
||||
|
||||
desc = []
|
||||
|
||||
# 分钟
|
||||
if minute == '*':
|
||||
desc.append('每分钟')
|
||||
elif minute.startswith('*/'):
|
||||
desc.append(f'每{minute[2:]}分钟')
|
||||
else:
|
||||
desc.append(f'{minute}分')
|
||||
|
||||
# 小时
|
||||
if hour != '*':
|
||||
if minute == '*':
|
||||
desc = [f'{hour}点每分钟']
|
||||
else:
|
||||
desc = [f'{hour}点{minute}分']
|
||||
elif minute.startswith('*/'):
|
||||
# 保持 "每X分钟"
|
||||
pass
|
||||
|
||||
# 日期
|
||||
if day != '*':
|
||||
desc.append(f'{day}号')
|
||||
|
||||
# 月份
|
||||
if month != '*':
|
||||
months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
|
||||
try:
|
||||
desc.append(f'{months[int(month)-1]}月')
|
||||
except:
|
||||
desc.append(f'{month}月')
|
||||
|
||||
# 星期
|
||||
if weekday != '*':
|
||||
weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
|
||||
try:
|
||||
# 0=周日, 1=周一...
|
||||
desc.append(weekdays[int(weekday)])
|
||||
except:
|
||||
desc.append(f'周{weekday}')
|
||||
|
||||
return ' '.join(desc) if desc else expr
|
||||
|
||||
|
||||
@app.route('/api/crons')
|
||||
def api_crons():
|
||||
"""获取系统 cron 列表"""
|
||||
crons = get_system_crons()
|
||||
for cron in crons:
|
||||
cron['description'] = parse_cron_expression(cron['expression'])
|
||||
return jsonify({'crons': crons})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.makedirs(os.path.join(BASE_DIR, 'logs'), exist_ok=True)
|
||||
print("=" * 50)
|
||||
|
||||
242
logs/ai-chat-system.log
Normal file
242
logs/ai-chat-system.log
Normal file
@@ -0,0 +1,242 @@
|
||||
|
||||
==================================================
|
||||
[2026-04-11T20:39:35.611218] start
|
||||
Command: python3 main.py
|
||||
Directory: /home/xian/.openclaw/workspace-coder/works/ai-chat
|
||||
/home/xian/.openclaw/workspace-coder/works/ai-chat/main.py:481: DeprecationWarning:
|
||||
on_event is deprecated, use lifespan event handlers instead.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
|
||||
|
||||
@app.on_event("startup")
|
||||
/home/xian/.openclaw/workspace-coder/works/ai-chat/main.py:506: DeprecationWarning:
|
||||
on_event is deprecated, use lifespan event handlers instead.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
|
||||
|
||||
@app.on_event("shutdown")
|
||||
INFO: Started server process [1469228]
|
||||
INFO: Waiting for application startup.
|
||||
INFO:__main__:数据库初始化完成
|
||||
INFO:services.ai_service:AI配置已更新: api_base=http://192.168.2.17:19007/v1, model=auto, use_mock=False
|
||||
INFO:__main__:AI配置已加载: http://192.168.2.17:19007/v1, model=auto
|
||||
INFO:services.matrix_service:Matrix配置: homeserver=http://matrix.tphai.com, user=@tester:matrix.tphai.com
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/account/whoami "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix HTTP API连接成功: @tester:matrix.tphai.com
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/joined_rooms "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix房间: !CUXwXrsopvYKCAEdKe:matrix.tphai.com
|
||||
INFO:__main__:Matrix Bot已启动
|
||||
INFO:services.matrix_service:Matrix HTTP同步任务已启动
|
||||
INFO: Application startup complete.
|
||||
INFO: Uvicorn running on http://0.0.0.0:19020 (Press CTRL+C to quit)
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:48668 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6449_126845_4290_2988_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6449_126845_4290_2988_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61860 - "GET / HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61860 - "GET /api/conversations HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61862 - "WebSocket /ws/main_user" [accepted]
|
||||
INFO:__main__:WebSocket连接: main_user, 当前连接数: 1
|
||||
INFO: 192.168.2.10:61861 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: connection open
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:37244 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6449_126845_4290_2988_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: PUT http://matrix.tphai.com/_matrix/client/v3/rooms/!CUXwXrsopvYKCAEdKe:matrix.tphai.com/send/m.room.message/m1248774373 "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix消息发送成功: !CUXwXrsopvYKCAEdKe:matrix.tphai.com
|
||||
INFO:services.ai_service:调用AI API: http://192.168.2.17:19007/v1/chat/completions, model=auto
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6449_126845_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: POST http://192.168.2.17:19007/v1/chat/completions "HTTP/1.1 502 Bad Gateway"
|
||||
ERROR:services.ai_service:AI API调用失败: Server error '502 Bad Gateway' for url 'http://192.168.2.17:19007/v1/chat/completions'
|
||||
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/502
|
||||
INFO:httpx:HTTP Request: PUT http://matrix.tphai.com/_matrix/client/v3/rooms/!CUXwXrsopvYKCAEdKe:matrix.tphai.com/send/m.room.message/m1248775047 "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix消息发送成功: !CUXwXrsopvYKCAEdKe:matrix.tphai.com
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6450_126845_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6451_126845_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:33214 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6451_126845_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61861 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: PUT http://matrix.tphai.com/_matrix/client/v3/rooms/!CUXwXrsopvYKCAEdKe:matrix.tphai.com/send/m.room.message/m1248795620 "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix消息发送成功: !CUXwXrsopvYKCAEdKe:matrix.tphai.com
|
||||
INFO:services.ai_service:调用AI API: http://192.168.2.17:19007/v1/chat/completions, model=auto
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6451_126851_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:36850 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6452_126851_4290_2989_3381_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: POST http://192.168.2.17:19007/v1/chat/completions "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: PUT http://matrix.tphai.com/_matrix/client/v3/rooms/!CUXwXrsopvYKCAEdKe:matrix.tphai.com/send/m.room.message/m1248804105 "HTTP/1.1 200 OK"
|
||||
INFO:services.matrix_service:Matrix消息发送成功: !CUXwXrsopvYKCAEdKe:matrix.tphai.com
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6452_126851_4290_2990_3382_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6453_126851_4290_2990_3382_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6453_126851_4290_2991_3383_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6453_126851_4291_2991_3383_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6453_126851_4293_2991_3383_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6453_126851_4294_2991_3383_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:35322 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126851_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:44872 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:60958 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2991_3384_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2992_3385_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61890 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126857_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:52004 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61946 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:51416 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:61981 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:61982 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126863_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3386_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:41872 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:62002 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:62001 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126869_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126875_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126875_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6454_126875_4294_2992_3387_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6455_126875_4295_2993_3388_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:38462 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6455_126875_4295_2993_3389_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:38470 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6459_126875_4295_2993_3389_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6459_126875_4295_2993_3389_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:62044 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:62045 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6463_126875_4295_2993_3389_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6464_126875_4295_2994_3390_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6467_126881_4295_2994_3390_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6468_126881_4295_2994_3390_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6472_126881_4295_2994_3390_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6474_126881_4295_2996_3391_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6474_126881_4295_2997_3391_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:53056 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6476_126881_4295_2999_3391_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6476_126881_4295_2999_3391_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 192.168.2.10:62071 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: 192.168.2.10:62072 - "GET /api/conversations/latest HTTP/1.1" 200 OK
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6478_126881_4295_3000_3392_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6478_126881_4295_3001_3393_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6481_126887_4295_3002_3395_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6482_126887_4295_3002_3396_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6484_126887_4295_3003_3396_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6487_126887_4295_3006_3396_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO:httpx:HTTP Request: GET http://matrix.tphai.com/_matrix/client/v3/sync?timeout=5000&since=s6488_126887_4295_3006_3396_3_530_126_0_1_1_1 "HTTP/1.1 200 OK"
|
||||
INFO: 127.0.0.1:60854 - "GET /api/admin/stats HTTP/1.1" 200 OK
|
||||
INFO: Shutting down
|
||||
INFO:__main__:WebSocket断开: main_user
|
||||
INFO: connection closed
|
||||
INFO: Waiting for application shutdown.
|
||||
INFO:__main__:应用已关闭
|
||||
INFO: Application shutdown complete.
|
||||
INFO: Finished server process [1469228]
|
||||
Terminated
|
||||
262
logs/app.log
Normal file
262
logs/app.log
Normal file
@@ -0,0 +1,262 @@
|
||||
==================================================
|
||||
项目服务管理面板
|
||||
访问地址: http://localhost:19013
|
||||
==================================================
|
||||
* Serving Flask app 'app'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
* Running on all addresses (0.0.0.0)
|
||||
* Running on http://127.0.0.1:19013
|
||||
* Running on http://192.168.2.17:19013
|
||||
Press CTRL+C to quit
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:10] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:12] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:16] "POST /api/projects/llm-proxy/start HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:21] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:24] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:25] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 18:59:28] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [12/Apr/2026 18:59:31] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 18:59:55] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:00:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:00:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:01:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:01:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:02:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:02:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:03:57] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:04:58] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:05:59] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:07:00] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:08:01] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:09:02] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:10:03] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:11:04] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:12:05] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:13:06] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:14:07] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:15:08] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:16:09] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:17:10] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:18:11] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:19:12] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:20:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:21:14] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:22:15] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:23:16] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:24:17] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:25:18] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:26:19] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:27:20] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:28:21] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:29:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:30:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:31:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:32:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:33:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:34:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:35:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:36:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:37:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:38:23] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:39:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:40:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:41:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:42:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:43:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:44:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:45:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:46:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:47:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:48:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:49:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:50:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:51:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:52:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:53:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:54:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:55:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:56:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:57:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:58:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 19:59:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:00:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:01:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:02:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:03:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:04:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:05:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:06:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 20:06:30] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:10:49] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:10:55] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:11:25] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:11:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:12:25] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:12:55] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:13:25] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:13:55] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:14:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:14:52] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:14:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:15:25] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:15:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:16:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:17:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:18:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:19:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 20:20:02] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:20:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:21:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:22:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:23:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:24:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:25:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:26:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:27:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:28:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:29:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:30:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:31:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:32:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:33:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:34:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:35:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:36:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:37:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:38:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:39:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 20:40:01] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:40:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:41:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:42:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:43:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:44:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:45:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:46:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:47:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:48:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:49:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:50:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:51:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:52:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:53:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:54:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:55:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:56:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:57:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:58:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 20:59:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 21:00:01] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:00:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:01:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:02:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:03:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:04:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:05:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:06:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:07:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:08:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:09:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:10:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:11:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:12:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:13:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:14:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [12/Apr/2026 21:15:22] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 21:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 21:40:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 22:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 22:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 22:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 23:00:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 23:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [12/Apr/2026 23:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 00:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 00:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 00:40:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 01:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 01:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 01:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 02:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 02:20:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 02:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 03:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 03:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 03:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 04:00:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 04:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 04:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 05:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 05:20:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 05:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 06:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 06:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 06:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 07:00:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 07:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 07:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 08:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 08:20:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 08:40:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 09:00:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 09:20:01] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 09:40:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:00:01] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:08:02] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:08:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:08:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:09:58] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:10:59] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:11:59] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:13:00] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:14:01] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:15:03] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:16:03] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:17:05] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:18:05] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:19:06] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:20:01] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:20:08] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:21:09] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:22:10] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:23:10] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:23:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:23:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:24:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:24:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:25:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:25:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:26:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:26:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:27:27] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:27:37] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:27:42] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:28:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:28:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:29:11] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:29:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:30:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:30:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:31:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:04] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:05] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:09] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:16] "POST /api/projects/xian-favor/start HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:26] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:41] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:33:06] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:33:11] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:33:12] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:33:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:34:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:34:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:35:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:35:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:43] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:49] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:37:19] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:37:30] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:37:47] "GET /api/projects HTTP/1.1" 200 -
|
||||
2784
logs/llm-proxy.log
2784
logs/llm-proxy.log
File diff suppressed because it is too large
Load Diff
1587
logs/project-panel.log
Normal file
1587
logs/project-panel.log
Normal file
File diff suppressed because it is too large
Load Diff
81189
logs/snippet-notes.log
81189
logs/snippet-notes.log
File diff suppressed because it is too large
Load Diff
1550
logs/tech-forum.log
Normal file
1550
logs/tech-forum.log
Normal file
File diff suppressed because it is too large
Load Diff
39
logs/xian-favor.log
Normal file
39
logs/xian-favor.log
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
==================================================
|
||||
[2026-04-13T10:32:16.459402] start
|
||||
Command: xian_favor serve --port 19014
|
||||
Directory: /home/xian/.openclaw/workspace-coder/works/xian-favor
|
||||
🚀 启动API服务: http://0.0.0.0:19014
|
||||
* Serving Flask app 'xian_favor.api'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
* Running on all addresses (0.0.0.0)
|
||||
* Running on http://127.0.0.1:19014
|
||||
* Running on http://192.168.2.17:19014
|
||||
Press CTRL+C to quit
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:21] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:21] "GET /api/items?limit=100 HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:32:21] "GET /api/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:32:26] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:32:41] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:33:11] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:33:12] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:33:43] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:34:13] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:34:43] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:35:13] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:35:43] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:36:13] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:36:43] "GET /api/health HTTP/1.1" 404 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:45] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:45] "GET /api/items?limit=100 HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:45] "GET /api/stats HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:49] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:49] "GET /api/items?limit=100 HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:36:49] "GET /api/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:36:49] "GET /api/health HTTP/1.1" 404 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:37:02] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:37:02] "GET /api/items?limit=100 HTTP/1.1" 200 -
|
||||
192.168.2.10 - - [13/Apr/2026 10:37:02] "GET /api/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:37:19] "GET /api/health HTTP/1.1" 404 -
|
||||
127.0.0.1 - - [13/Apr/2026 10:37:30] "GET / HTTP/1.1" 200 -
|
||||
Reference in New Issue
Block a user