Angular2记录

Nee*_*eel 17 logging angular

我希望将记录引入angular2应用程序,并希望检查您可以推荐的任何好的库或方法.

记录要求是:

  • 将有选项配置日志记录,如信息,警告,错误,调试和详细.
  • 将日志保存到本地存储中,然后在一定时间间隔后将日志同步到服务器端点
  • 将能够支持Json格式并控制日志格式

下面的要求将是很好的,任何与您可以分享的网络工作者的经验将不胜感激.

  • 将日志记录功能构建为Web工作者以远离浏览器线程会很好,我们可能会将应用程序缓存用作临时存储吗?

对此有任何建议将非常感激.

PKS*_*KSA 6

您可以使用ngx-logger

NGX Logger是一个简单的角度记录模块(目前支持角度为4.3+).它允许对控制台进行"漂亮打印",并允许将日志消息发布到用于服务器端日志记录的URL.

安装

npm install --save ngx-logger

安装完成后,您需要导入我们的主模块:

import { LoggerModule, NgxLoggerLevel } from 'ngx-logger';
Run Code Online (Sandbox Code Playgroud)

唯一剩下的部分是在应用程序模块中列出导入的模块,传入配置以初始化记录器.

@NgModule({
  declarations: [AppComponent, ...],
  imports: [LoggerModule.forRoot({serverLoggingUrl: '/api/logs', level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR}), ...],
  bootstrap: [AppComponent]
})
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

用法

要使用Logger,您需要在本地导入它,然后调用其中一个日志记录功能

import { Component } from '@angular/core';
import { NGXLogger } from 'ngx-logger';

@Component({
  selector: 'your-component',
  templateUrl: './your.component.html',
  styleUrls: ['your.component.less'],
  providers: [NGXLogger]
})
export class YourComponent {
    constructor(private logger: NGXLogger) {
        this.logger.debug('Your log message goes here');
        this.logger.debug('Multiple', 'Argument', 'support');
    };
}
Run Code Online (Sandbox Code Playgroud)

配置选项

serverLogLevel - 仅将日志发送到指定级别或更高级别的服务器(OFF禁用服务器的记录器)serverLoggingUrl - POST日志级别的URL:应用程序将仅记录该级别或更高级别的消息(OFF禁用客户端的记录器)enableDarkTheme:将默认颜色设置为白色而不是黑色TRACE | DEBUG | INFO | LOG | WARN | ERROR | OFF服务器端日志记录

如果serverLogginUrl存在,NGX Logger将尝试将该日志POST到服务器.

有效负载示例{level:'DEBUG',消息:'您的日志消息在这里'}

您也可以阅读相同的文档. https://www.npmjs.com/package/ngx-logger


use*_*862 1

我认为JSNLog部分符合您的要求(我是 JSNLog 的作者)。

JSNLog 由客户端库 jsnlog.js 和服务器端组件组成。客户端库通过 AJAX 请求将日志项发送到服务器端组件。一旦到达服务器,日志项就会存储在服务器端日志中。.Net 4.x版本使用Common.Logging,支持Log4Net、NLog、Elmah和Serilog日志。.Net Core版本支持Core日志记录框架。

将 JSNLog 功能与您的需求相匹配:

将有配置日志记录的选项,如信息、警告、错误、调试和详细。

JSNLog 支持 Log4Net 严重级别:Trace、Debug、Info、Warn、Error、Fatal。此外,您可以使用数字严重性级别,为您提供所需的多个严重性级别。

将能够将日志保存到本地存储中,然后在一定时间间隔后将日志同步到服务器端点

JSNLog 允许您将每条消息中可配置数量的日志项批量发送到服务器。它还支持设置任何消息在发送之前在缓冲区中停留的最长时间。

此外,JSNLog 允许您将低严重性的日志项存储在客户端内存中,并且仅在发送高严重性日志项时才将它们发送到服务器。例如,您可以在发生异常时记录跟踪事件,并且仅在发生异常时将它们发送到服务器并记录致命事件。

将能够支持Json格式并可以控制日志格式

JSNLog 允许您记录 JSON 对象。如果您在服务器上使用 Serilog,则可以将这些对象存储为对象而不是字符串。此外,您还可以在 jsnlog.js 上设置事件处理程序,以允许您修改传出日志项。

将日志记录功能构建为网络工作者就好了......

JSNLog 不是网络工作者。