Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. import { Injectable } from '@angular/core';
  2.  
  3. @Injectable()
  4. export class LoggerService {
  5.  
  6. public level: number = 3;
  7.  
  8. public levelDefs = {
  9. OFF: 0,
  10. ERROR: 1,
  11. WARN: 2,
  12. INFO: 3,
  13. DEBUG: 4,
  14. LOG: 5
  15. };
  16.  
  17. constructor() {
  18. // ...
  19. }
  20.  
  21. public setLogLevel(logLevel: 'OFF'|'ERROR'|'WARN'|'INFO'|'DEBUG') {
  22. switch (logLevel) {
  23. case 'OFF':
  24. this.level = this.levelDefs.OFF;
  25. break;
  26. case 'ERROR':
  27. this.level = this.levelDefs.ERROR;
  28. break;
  29. case 'WARN':
  30. this.level = this.levelDefs.WARN;
  31. break;
  32. case 'INFO':
  33. this.level = this.levelDefs.INFO;
  34. break;
  35. case 'DEBUG':
  36. this.level = this.levelDefs.DEBUG;
  37. break;
  38. default:
  39. this.level = this.levelDefs.LOG;
  40. break;
  41. }
  42. }
  43.  
  44. public error(...args): void {
  45. this._call(this.levelDefs.ERROR, 'error', ...args);
  46. }
  47.  
  48. public warn(...args): void {
  49. this._call(this.levelDefs.WARN, 'warn', ...args);
  50. }
  51.  
  52. public info(...args): void {
  53. this._call(this.levelDefs.INFO, 'info', ...args);
  54. }
  55.  
  56. public debug(...args): void {
  57. this._call(this.levelDefs.DEBUG, 'debug', ...args);
  58. }
  59.  
  60. public log(...args): void {
  61. this._call(this.levelDefs.LOG, 'log', ...args);
  62. }
  63.  
  64. private _call(level: number, type: string, ...args) {
  65. if (this.level >= level) {
  66. console[type].apply(console, args);
  67. }
  68. }
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement