feat(language-service): enable logging on TypeScriptHost (#32645)
This PR adds loggin methods to TypeScriptHost so that proper logging to file could be done. Three new methods are added: log(), error(), and debug(). PR Close #32645
This commit is contained in:
parent
3c7da767d8
commit
e82f56b96f
|
@ -9,6 +9,7 @@
|
|||
import {AotSummaryResolver, CompileDirectiveSummary, CompileMetadataResolver, CompileNgModuleMetadata, CompilePipeSummary, CompilerConfig, DirectiveNormalizer, DirectiveResolver, DomElementSchemaRegistry, FormattedError, FormattedMessageChain, HtmlParser, I18NHtmlParser, JitSummaryResolver, Lexer, NgAnalyzedModules, NgModuleResolver, ParseTreeResult, Parser, PipeResolver, ResourceLoader, StaticReflector, StaticSymbol, StaticSymbolCache, StaticSymbolResolver, TemplateParser, analyzeNgModules, createOfflineCompileUrlResolver, isFormattedError} from '@angular/compiler';
|
||||
import {SchemaMetadata, ViewEncapsulation, ɵConsole as Console} from '@angular/core';
|
||||
import * as ts from 'typescript';
|
||||
import * as tss from 'typescript/lib/tsserverlibrary';
|
||||
|
||||
import {AstResult, isAstResult} from './common';
|
||||
import {createLanguageService} from './language_service';
|
||||
|
@ -525,6 +526,45 @@ export class TypeScriptServiceHost implements LanguageServiceHost {
|
|||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log the specified `msg` to file at INFO level. If logging is not enabled
|
||||
* this method is a no-op.
|
||||
* @param msg Log message
|
||||
*/
|
||||
log(msg: string) {
|
||||
if (this.tsLsHost.log) {
|
||||
this.tsLsHost.log(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log the specified `msg` to file at ERROR level. If logging is not enabled
|
||||
* this method is a no-op.
|
||||
* @param msg error message
|
||||
*/
|
||||
error(msg: string) {
|
||||
if (this.tsLsHost.error) {
|
||||
this.tsLsHost.error(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log debugging info to file at INFO level, only if verbose setting is turned
|
||||
* on. Otherwise, this method is a no-op.
|
||||
* @param msg debugging message
|
||||
*/
|
||||
debug(msg: string) {
|
||||
const project = this.tsLsHost as tss.server.Project;
|
||||
if (!project.projectService) {
|
||||
// tsLsHost is not a Project
|
||||
return;
|
||||
}
|
||||
const {logger} = project.projectService;
|
||||
if (logger.hasLevel(tss.server.LogLevel.verbose)) {
|
||||
logger.info(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function findSuitableDefaultModule(modules: NgAnalyzedModules): CompileNgModuleMetadata|undefined {
|
||||
|
|
Loading…
Reference in New Issue