exceptionless/apiExceptionless Server 是一个开源的实时错误跟踪与日志聚合解决方案,提供自托管部署选项。该平台旨在帮助开发者实时捕获、集中管理并分析应用程序运行时的异常、错误和日志数据,通过可视化界面和强大的分析工具,加速问题定位与解决,从而提升应用可靠性和用户体验。作为开源项目(GitHub 仓库),用户可完全控制数据存储与隐私,适用于对数据安全性有较高要求的场景。
以下命令启动 Exceptionless Server 单容器实例(依赖内置 SQLite,适合测试环境):
bashdocker run -d -p 5000:80 --name exceptionless \ -e EX_AppMode=Development \ -e EX_ConnectionStrings__Default=Data Source=/app/data/exceptionless.db \ -v exceptionless-data:/app/data \ exceptionless/exceptionless:latest
-p 5000:80:映射容器 80 端口到主机 5000 端口-v exceptionless-data:/app/data:持久化存储数据(日志、配置等)EX_AppMode:设置运行模式(Development/Production)EX_ConnectionStrings__Default:数据库连接字符串(内置 SQLite)生产环境建议使用 Redis(缓存)+ Elasticsearch(日志存储)架构,通过 Docker Compose 部署:
docker-compose.yml 文件:yamlversion: '3.8' services: exceptionless: image: exceptionless/exceptionless:latest ports: - "5000:80" environment: - EX_AppMode=Production - EX_ConnectionStrings__Redis=redis://redis:6379 - EX_ConnectionStrings__Elasticsearch=[***] - EX_ConnectionStrings__Default=Server=sql;Database=exceptionless;User Id=sa;Password=YourStrong!Passw0rd; - EX_Smtp__Host=smtp.example.com - EX_Smtp__Port=587 - EX_Smtp__UseSsl=true - EX_Smtp__UserName=*** - EX_Smtp__Password=your-smtp-password depends_on: - redis - elasticsearch - sql volumes: - exceptionless-config:/app/config - exceptionless-assets:/app/wwwroot/assets redis: image: redis:7-alpine volumes: - redis-data:/data elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.10.4 environment: - discovery.type=single-node - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - elasticsearch-data:/usr/share/elasticsearch/data sql: image: mcr.microsoft.com/mssql/server:2022-latest environment: - ACCEPT_EULA=Y - SA_PASSWORD=YourStrong!Passw0rd volumes: - sql-data:/var/opt/mssql volumes: exceptionless-config: exceptionless-assets: redis-data: elasticsearch-data: sql-data:
bashdocker-compose up -d
通过 Docker 卷(Volumes)持久化关键数据,避免容器重启后数据丢失:
exceptionless-config:存储应用配置文件exceptionless-assets:存储静态资源(如上传的日志文件)redis-data:Redis 缓存数据elasticsearch-data:Elasticsearch 索引数据(日志与事件)sql-data:SQL Server 数据库数据(用户信息、权限等)部署完成后,需在应用中集成 Exceptionless SDK 以发送事件/错误数据。以下为常见语言示例:
csharp// 安装 NuGet 包:Install-Package Exceptionless using Exceptionless; ExceptionlessClient.Default.Configuration.ApiKey = "YOUR_API_KEY"; ExceptionlessClient.Default.Configuration.ServerUrl = "[***]"; try { // 业务逻辑代码 } catch (Exception ex) { ex.ToExceptionless().Submit(); // 提交异常 } // 发送自定义日志 ExceptionlessClient.Default.SubmitLog("User login failed", "warn", new { UserId = "123", IP = "192.168.1.1" });
javascript// 引入 SDK:npm install exceptionless import { ExceptionlessClient } from 'exceptionless'; const client = new ExceptionlessClient({ apiKey: 'YOUR_API_KEY', serverUrl: '[***] }); try { // 业务逻辑代码 } catch (ex) { client.submitException(ex); // 提交异常 } // 发送自定义事件 client.submitEvent({ type: 'UserView', data: { Page: 'Home', UserAgent: navigator.userAgent } });
http://<服务器IP>:5000 访问 Web 管理界面API Key常用环境变量说明(完整列表见 官方文档):
| 环境变量 | 说明 | 默认值 |
|---|---|---|
EX_AppMode | 运行模式(Development/Production) | Production |
EX_ConnectionStrings__Default | 主数据库连接字符串(支持 SQL Server/PostgreSQL) | 内置 SQLite 连接串 |
EX_ConnectionStrings__Redis | Redis 连接字符串(用于缓存) | redis://localhost:6379 |
EX_ConnectionStrings__Elasticsearch | Elasticsearch 连接字符串(日志存储) | http://localhost:9200 |
EX_Smtp__Host | SMTP 服务器地址(用于通知邮件) | - |
EX_Smtp__Port | SMTP 端口 | 587 |
EX_Smtp__UseSsl | 是否启用 SSL 加密 | true |
EX_Smtp__UserName | SMTP 认证用户名 | - |
EX_Smtp__Password | SMTP 认证密码 | - |

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务