npm 包 ovh-angular-tail-logs 使用教程

简介

ovh-angular-tail-logs 是一款前端日志监控工具,基于 Angular 实现。它可以将服务端产生的日志通过 WebSocket 实时推送到前端,从而实时监控服务端的运行情况。该工具基于 Tail 的原理开发,不仅支持 Linux 系统上的日志监控,而且支持 Windows 系统上的日志监控,十分实用。

安装

ovh-angular-tail-logs 可以通过 npm 安装。在命令行中输入以下命令:

使用

引入依赖

在 Angular 的应用中引入 ovh-angular-tail-logs,需要在项目的 package.json 文件中添加以下依赖:

安装完成后,在需要使用 ovh-angular-tail-logs 的组件中,引入 LogTailService:

import { Component } from '@angular/core';
import { LogTailService } from 'ovh-angular-tail-logs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(private logTailService: LogTailService) { }
}

开始监控

在组件初始化的时候,调用 LogTailService 的 init() 方法来进行监控设置:

ngOnInit() {
  this.logTailService.init({
    serverUrl: 'ws://localhost:8080/logs/tail',
    websocketOptions: {},
    tailOptions: {
      filePath: '/var/logs/app.log',
      fromBeginning: true
    }
  });
}

调用 init() 方法时需要传递一个对象参数,其中包含以下几个属性:

  • serverUrl:WebSocket 服务器地址;
  • websocketOptions:WebSocket 设置的配置对象;
  • tailOptions:监控设置对象,其中需要包含 filePath 属性来指定监控的日志文件路径,fromBeginning 属性表示是否从文件开头开始监控。

监控日志事件

成功设置监控后,在我们需要展示日志的组件中,可以定义一个监听日志的方法,通过 onLog() 方法来监听日志产生事件:

onLog(log: string) {
  console.log(log);
}

在 init() 方法调用成功后,LogTailService 会开始监听日志事件,每当有新的日志产生时,就会执行 onLog() 方法,将日志输出到控制台。

停止监控

当监控不再需要时,需要调用 LogTailService 的 stop() 方法来停止监控:

ngOnDestroy() {
  this.logTailService.stop();
}

示例代码

完整的 ovh-angular-tail-logs 使用示例代码如下:

import { Component } from '@angular/core';
import { LogTailService } from 'ovh-angular-tail-logs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  logs: string[] = [];

  constructor(private logTailService: LogTailService) { }

  ngOnInit() {
    this.logTailService.init({
      serverUrl: 'ws://localhost:8080/logs/tail',
      websocketOptions: {},
      tailOptions: {
        filePath: '/var/logs/app.log',
        fromBeginning: true
      }
    });
  }

  onLog(log: string) {
    this.logs.push(log);
  }

  ngOnDestroy() {
    this.logTailService.stop();
  }
}

这个组件会在监控到新的日志事件时,将这些日志记录在一个数组中,并在 HTML 模板中进行展示:

<div *ngFor="let log of logs">{{ log }}</div>

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673dffb81d47349e53c70


纠错
反馈