@@ -6,6 +6,7 @@ import { ScriptDAO } from "@App/app/repo/scripts";
66import { SystemConfig } from "@App/pkg/config/config" ;
77import { prepareScriptByCode } from "@App/pkg/utils/script" ;
88import Logger from "@App/app/logger/logger" ;
9+ import { LoggerDAO } from "@App/app/repo/logger" ;
910import Manager from "../manager" ;
1011import ScriptManager from "../script/manager" ;
1112
@@ -20,11 +21,14 @@ export class SystemManager extends Manager {
2021
2122 wsVscode ?: WebSocket ;
2223
24+ loggerDAO : LoggerDAO ;
25+
2326 constructor ( message : MessageHander , systemConfig : SystemConfig ) {
2427 super ( message , "system" ) ;
2528 this . scriptDAO = new ScriptDAO ( ) ;
2629 this . systemConfig = systemConfig ;
2730 this . scriptManager = IoC . instance ( ScriptManager ) as ScriptManager ;
31+ this . loggerDAO = new LoggerDAO ( ) ;
2832 }
2933
3034 init ( ) {
@@ -96,6 +100,9 @@ export class SystemManager extends Manager {
96100 this . listenEvent ( "connectVSCode" , this . connectVSCode . bind ( this ) ) ;
97101
98102 this . reconnectVSCode ( ) ;
103+
104+ // 定时清理日志
105+ this . clearLogger ( ) ;
99106 }
100107
101108 reconnectVSCode ( ) {
@@ -189,6 +196,25 @@ export class SystemManager extends Manager {
189196 } ) ;
190197 } ) ;
191198 }
199+
200+ clearLogger ( ) {
201+ setInterval ( ( ) => {
202+ // 取出上一次清理时间
203+ chrome . storage . local . get ( [ "lastClearLoggerTime" ] , ( items ) => {
204+ const lastClearLoggerTime = items . lastClearLoggerTime || 0 ;
205+ const now = new Date ( ) . getTime ( ) ;
206+ if ( now - lastClearLoggerTime > 60 * 60 * 1000 ) {
207+ chrome . storage . local . set ( { lastClearLoggerTime : now } ) ;
208+ // 清理7天前的日志
209+ this . loggerDAO . deleteBefore (
210+ new Date (
211+ now - this . systemConfig . logCleanCycle * 24 * 60 * 60 * 1000
212+ ) . getTime ( )
213+ ) ;
214+ }
215+ } ) ;
216+ } , 60 * 1000 ) ;
217+ }
192218}
193219
194220export default SystemManager ;
0 commit comments