Skip to content

Commit

Permalink
fix: default error dir and loadMidwayController (#1791)
Browse files Browse the repository at this point in the history
  • Loading branch information
czy88840616 committed Mar 9, 2022
1 parent c2c757c commit 4fd6b64
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 13 deletions.
3 changes: 1 addition & 2 deletions packages/core/src/config/config.default.ts
Expand Up @@ -23,8 +23,7 @@ export default (
dir: join(logRoot, 'logs', appInfo.name),
level: isDevelopment ? 'info' : 'warn',
consoleLevel: isDevelopment ? 'info' : 'warn',
auditFileDir: join(logRoot, 'logs', appInfo.name, '.audit'),
errorDir: join(logRoot, 'logs', appInfo.name),
auditFileDir: '.audit',
},
clients: {
coreLogger: {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/service/loggerService.ts
@@ -1,7 +1,7 @@
import { Provide, Scope, ScopeEnum, Inject, Init } from '@midwayjs/decorator';
import { MidwayConfigService } from './configService';
import { ServiceFactory } from '../common/serviceFactory';
import { ILogger, loggers } from '@midwayjs/logger';
import { ILogger, loggers, LoggerOptions } from '@midwayjs/logger';
import { IMidwayContainer } from '../interface';

@Provide()
Expand All @@ -24,7 +24,7 @@ export class MidwayLoggerService extends ServiceFactory<ILogger> {
);
}

protected createClient(config, name?: string) {
protected createClient(config: LoggerOptions, name?: string) {
loggers.createLogger(name, config);
}

Expand Down
2 changes: 1 addition & 1 deletion packages/info/test/__snapshots__/index.test.ts.snap
Expand Up @@ -7,7 +7,7 @@ Object {
"debug": "{\\"recordConfigMergeOrder\\":true}",
"info": "{\\"title\\":\\"Midway Info\\",\\"infoPath\\":\\"/_info\\",\\"hiddenKey\\":[\\"k***\\",\\"****\\",\\"*****n\\",\\"********\\",\\"p****\\"]}",
"keys": "[\\"1*******5\\"]",
"midwayLogger": "{\\"default\\":{\\"dir\\":\\"logs\\",\\"level\\":\\"info\\",\\"consoleLevel\\":\\"info\\",\\"auditFileDir\\":\\"logs/.audit\\",\\"errorDir\\":\\"logs\\",\\"disableFile\\":true,\\"disableError\\":true},\\"clients\\":{\\"coreLogger\\":{\\"fileLogName\\":\\"midway-core.log\\"},\\"appLogger\\":{\\"fileLogName\\":\\"midway-app.log\\",\\"aliasName\\":\\"logger\\"}}}",
"midwayLogger": "{\\"default\\":{\\"dir\\":\\"logs\\",\\"level\\":\\"info\\",\\"consoleLevel\\":\\"info\\",\\"auditFileDir\\":\\".audit\\",\\"disableFile\\":true,\\"disableError\\":true},\\"clients\\":{\\"coreLogger\\":{\\"fileLogName\\":\\"midway-core.log\\"},\\"appLogger\\":{\\"fileLogName\\":\\"midway-app.log\\",\\"aliasName\\":\\"logger\\"}}}",
"oss": "{\\"clients\\":{\\"default\\":{\\"accessKeyId\\":\\"123\\",\\"accessKeySecret\\":\\"f*****f\\"}}}",
},
"type": "Midway Config",
Expand Down
7 changes: 7 additions & 0 deletions packages/web/app.js
Expand Up @@ -65,6 +65,13 @@ class AppBootHook {
const eggRouterMiddleware = this.app.router.middleware();
eggRouterMiddleware._name = 'eggRouterMiddleware';
this.app.useMiddleware(eggRouterMiddleware);

if (process.env['EGG_CLUSTER_MODE'] === 'true') {
// 多进程时的路由加载必须放在这里,中间件加载之后
const framework = this.app.applicationContext.get('midwayWebFramework');
await framework.loadMidwayController();
}

this.app.emit('application-ready');
}

Expand Down
3 changes: 1 addition & 2 deletions packages/web/src/base.ts
Expand Up @@ -174,11 +174,10 @@ export const createAppWorkerLoader = () => {
[applicationContext]
);

// 执行加载路由
// 执行加载框架初始化
this.framework = await applicationContext.getAsync(
MidwayWebFramework
);
await this.framework.loadMidwayController();
});
}
}
Expand Down
36 changes: 30 additions & 6 deletions packages/web/src/logger.ts
@@ -1,5 +1,10 @@
import { loggers, ILogger, IMidwayLogger } from '@midwayjs/logger';
import { join, isAbsolute } from 'path';
import {
loggers,
ILogger,
IMidwayLogger,
LoggerOptions,
} from '@midwayjs/logger';
import { join, isAbsolute, dirname, basename } from 'path';
import {
existsSync,
lstatSync,
Expand Down Expand Up @@ -121,7 +126,8 @@ class MidwayLoggers extends Map<string, ILogger> {
// 先把 egg 的日志配置转为 midway logger 配置
if (configService.getConfiguration('customLogger')) {
const eggLoggerConfig = this.transformEggLogger(
configService.getConfiguration('customLogger')
configService.getConfiguration('customLogger'),
configService.getConfiguration('midwayLogger.default')
) as any;
if (eggLoggerConfig) {
configService.addObject(eggLoggerConfig);
Expand Down Expand Up @@ -162,7 +168,6 @@ class MidwayLoggers extends Map<string, ILogger> {
* 提前备份 egg 日志
*/
checkEggLoggerExistsAndBackup(options.dir, options.fileLogName);

const logger: ILogger = loggers.createLogger(loggerKey, options);

// overwrite values for pandora collect
Expand Down Expand Up @@ -194,18 +199,37 @@ class MidwayLoggers extends Map<string, ILogger> {
}
}

transformEggLogger(eggCustomLogger) {
transformEggLogger(eggCustomLogger, midwayLoggerConfig: LoggerOptions) {
const transformLoggerConfig = {
midwayLogger: {
clients: {},
},
};

for (const name in eggCustomLogger) {
const file = eggCustomLogger[name]?.file;
if (!file) {
continue;
}
const options = {} as any;
if (isAbsolute(file)) {
// 绝对路径,单独处理
options.dir = dirname(file);
options.fileLogName = basename(file);
options.auditFileDir =
midwayLoggerConfig.auditFileDir === '.audit'
? join(midwayLoggerConfig.dir, '.audit')
: midwayLoggerConfig.auditFileDir;
options.errorDir =
midwayLoggerConfig.errorDir ?? midwayLoggerConfig.dir;
} else {
// 相对路径,使用默认的 dir 即可
options.fileLogName = file;
}
transformLoggerConfig.midwayLogger.clients[name] = {
fileLogName: eggCustomLogger[name]?.file,
level: levelTransform(eggCustomLogger[name]?.level),
consoleLevel: levelTransform(eggCustomLogger[name]?.consoleLevel),
...options,
};
cleanUndefinedProperty(transformLoggerConfig.midwayLogger.clients[name]);
}
Expand Down

0 comments on commit 4fd6b64

Please sign in to comment.