# HoursPolypeptide **Repository Path**: sichenair/hours-polypeptide ## Basic Information - **Project Name**: HoursPolypeptide - **Description**: 多肽合成 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-08 - **Last Updated**: 2025-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多肽合成系统 - 运行说明 ## 前置条件 1. **MySQL 数据库** - 确保 MySQL 服务正在运行 - 端口:3306(默认) - 用户:root - 密码:woshikeji 2. **创建数据库** - 运行项目中的 `CreateNLogTable.sql` 脚本 - 或者手动创建 `hours_log` 数据库和 `NLogEntries` 表 ## 运行步骤 ### 1. 数据库准备 ```sql -- 在 MySQL 中执行以下命令 source /path/to/CreateNLogTable.sql; ``` 或者手动创建: ```sql CREATE DATABASE IF NOT EXISTS `hours_log` DEFAULT CHARACTER SET utf8mb4; USE `hours_log`; CREATE TABLE `NLogEntries` ( `Id` int NOT NULL AUTO_INCREMENT, `Timestamp` datetime(3) NOT NULL, `Level` varchar(50) NOT NULL, `LoggerName` varchar(255) NOT NULL, `Message` longtext NOT NULL, `Exception` longtext, `MachineName` varchar(50), `ThreadId` varchar(50), `Properties` longtext, PRIMARY KEY (`Id`), KEY `idx_timestamp` (`Timestamp`), KEY `idx_level` (`Level`), KEY `idx_logger` (`LoggerName`) ); ``` ### 2. 运行应用程序 1. 编译项目 2. 运行 `Hours.Polypeptide.exe` 3. 主窗口会自动导航到日志测试视图 ### 3. 测试日志功能 应用程序会显示日志测试界面,包含以下功能: - **NLog数据库日志测试** - 异步日志器:默认推荐,平衡性能和可靠性 - 同步日志器:立即写入,适合关键操作 - 高性能日志器:缓冲异步,适合高频场景 - 性能基准测试:测试大量日志写入性能 - **其他日志系统测试** - 文件日志:写入到 `logs/` 目录 - 数据库日志:直接操作数据库 - 复合日志:同时写入文件和数据库 - **清理操作** - 清理日志文件 - 清理数据库日志 ## 系统架构 ### 日志系统特点 1. **基于NLog配置**:使用 AsyncWrapper 实现真正的异步写入 2. **三种日志器类型**: - `Async`: 异步日志器(推荐) - `Sync`: 同步日志器(立即写入) - `HighPerformance`: 高性能缓冲日志器 3. **工厂模式**:统一创建和管理日志器 4. **结构化日志**:支持属性和匿名对象 ### 配置文件 - `NLog.config`: NLog 配置文件 - `CreateNLogTable.sql`: 数据库表创建脚本 ## 故障排除 ### 常见问题 1. **数据库连接失败** - 检查 MySQL 服务是否运行 - 确认连接字符串中的用户名和密码 - 确保 `hours_log` 数据库存在 2. **日志不写入** - 检查 `NLog.config` 文件是否正确复制到输出目录 - 检查数据库表结构是否正确 - 查看应用程序输出窗口的调试信息 3. **性能问题** - 使用高性能日志器处理大量日志 - 调整 NLog 配置中的 batchSize 和 queueLimit - 考虑数据库索引优化 ### 调试技巧 - 查看 Visual Studio 的输出窗口 - 检查 `logs/` 目录中的文件日志 - 查询数据库中的日志记录 ## 技术栈 - **.NET 6.0** - **WPF** - **Prism 8.1** - **NLog 6.0** - **MySQL 8.0** - **SqlSugar ORM** ## 联系信息 如有问题请联系开发团队。