{"_id":"@canvasgfx/logger","_rev":"3-979ef8a91ad9d75198a256513d2288de","name":"@canvasgfx/logger","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.0":{"name":"@canvasgfx/logger","version":"0.0.0","description":"Console logging utility for Angular project.","author":{"name":"reactgular.com"},"homepage":"https://reactgular.com/","license":"MIT","repository":{"type":"git","url":"git+https://github.com/canvasgfx/logger.git"},"bugs":{"url":"https://github.com/canvasgfx/logger/issues"},"scripts":{"ng":"ng","build":"ng build --prod","beta":"npm run test && npm run lint && npm run build && cd dist/reactgular/logger && npm publish --tag beta","test":"ng test --watch=false --code-coverage=true","lint":"ng lint","e2e":"ng e2e","postbuild":"cp README.md ./dist/reactgular/logger/README.md"},"dependencies":{"@angular/common":"~10.1.1","@angular/compiler":"~10.1.1","@angular/core":"~10.1.1","@angular/platform-browser":"~10.1.1","@angular/platform-browser-dynamic":"~10.1.1","@angular/router":"~10.1.1","rxjs":"~6.6.3","tslib":"^2.0.0","zone.js":"~0.10.2"},"devDependencies":{"@angular-devkit/build-angular":"~0.1001.1","@angular-devkit/build-ng-packagr":"~0.1001.1","@angular/cli":"~10.1.1","@angular/compiler-cli":"~10.1.1","@angular/language-service":"~10.1.1","@types/node":"^12.11.1","@types/jasmine":"~3.3.8","@types/jasminewd2":"~2.0.3","codelyzer":"^6.0.0","jasmine-core":"~3.5.0","jasmine-spec-reporter":"~5.0.0","karma":"~5.0.0","karma-chrome-launcher":"~3.1.0","karma-coverage-istanbul-reporter":"~3.0.2","karma-jasmine":"~4.0.0","karma-jasmine-html-reporter":"^1.5.0","ng-packagr":"^10.1.0","protractor":"~7.0.0","ts-node":"~7.0.0","tslint":"~6.1.0","typescript":"~4.0.2"},"gitHead":"61daea166d90e0bbb0b2c4ca7f7e990b18ade653","_id":"@canvasgfx/logger@0.0.0","_nodeVersion":"16.13.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-a3h6/VVh8UaS7as951pIFo80RRW9H5GYzY6lZHQMbR6chnO6DsrrRK5w948bC1cHyxOdxrMyT0FTHdPSwiuBOA==","shasum":"c9b191f7fea59bd0f64ee6918149971a29b37946","tarball":"https://registry.npmjs.org/@canvasgfx/logger/-/logger-0.0.0.tgz","fileCount":30,"unpackedSize":41698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEq8Cd027XrwZWH6HeHmz/fi3airT6RDbO/obNCb8AQ7AiAL/gpcAYiwdvUJAIpRyY6Cy27MDJkrLgKZ7y1KTfDonQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2rq6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUyA//dK1pAumLw+4znSwKBdeOt/segUCHNP5lBeRrV+0FAmyhGvBY\r\n51QMmsDo53fk4gUya96ulBdoloY/J3mmBYGSq1NK38vuEE8NdWYpzY98hPrD\r\nrLU0k+7PEmNQAJQcxoVMHmAjoiLp44hn6pQD1IbkU1knxyPPNqVHDz7JIQVy\r\nZFxpWVaDrkoDvVtm0nvaRJQUA21ZeXX3KT/bnRdprnJ5+8UWW0Z//1PQZUbk\r\nHzQNpuio9d1GSSf2qOJnCtEU+UtwdW0BzzvE5gZxH9aQv85Qu+1nlBqCvODU\r\nzeY5r9pjoCj70VyouovBuh6V7WDss3p0iCqnj4nqaGTwhke6vv+BRHg/7XkF\r\njdS0PXC6caJjUnP/wcq7PigOg70Uhw1MBFYchIJCSjNMv8yOezIJYBAfXCBx\r\naXg1iu/tGeJQwjmIFkEoVRd22H5aSE+0D7qg0hdV7qzMT9XhuOXlCUJl5ip0\r\nZMxslh5Kc+mfmiFINmewjnExlATr0sgfHwHaNdqB38OtOC0wCV7E5CvG9C9Q\r\nRc6NfVquZo9oK/u2D36wGj4Vi0xqC2ZQxklxjzXt5kBo7rTVJ8SYIjooBtnw\r\nSY2fb+iNifXSjZJd4odKlzTT5GuR2c68RbnnnacEOfGusrddmoPGRN42kSw8\r\nXnXp54Z1fxHLxeitnBtWuYAhcK5WPEgBL0Q=\r\n=aGcg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"},"directories":{},"maintainers":[{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/logger_0.0.0_1675279034073_0.24802438522316228"},"_hasShrinkwrap":false},"1.0.1":{"name":"@canvasgfx/logger","version":"1.0.1","description":"Console logging utility for Angular project.","author":{"name":"reactgular.com"},"homepage":"https://reactgular.com/","license":"MIT","repository":{"type":"git","url":"git+https://github.com/canvasgfx/logger.git"},"bugs":{"url":"https://github.com/canvasgfx/logger/issues"},"scripts":{"ng":"ng","build":"ng build --prod","beta":"npm run test && npm run lint && npm run build && cd dist/reactgular/logger && npm publish --tag beta","test":"ng test --watch=false --code-coverage=true","lint":"ng lint","e2e":"ng e2e","postbuild":"cp README.md ./dist/reactgular/logger/README.md"},"dependencies":{"@angular/common":"~10.1.1","@angular/compiler":"~10.1.1","@angular/core":"~10.1.1","@angular/platform-browser":"~10.1.1","@angular/platform-browser-dynamic":"~10.1.1","@angular/router":"~10.1.1","rxjs":"~6.6.3","tslib":"^2.0.0","zone.js":"~0.10.2"},"devDependencies":{"@angular-devkit/build-angular":"~0.1001.1","@angular-devkit/build-ng-packagr":"~0.1001.1","@angular/cli":"~10.1.1","@angular/compiler-cli":"~10.1.1","@angular/language-service":"~10.1.1","@types/node":"^12.11.1","@types/jasmine":"~3.3.8","@types/jasminewd2":"~2.0.3","codelyzer":"^6.0.0","jasmine-core":"~3.5.0","jasmine-spec-reporter":"~5.0.0","karma":"~5.0.0","karma-chrome-launcher":"~3.1.0","karma-coverage-istanbul-reporter":"~3.0.2","karma-jasmine":"~4.0.0","karma-jasmine-html-reporter":"^1.5.0","ng-packagr":"^10.1.0","protractor":"~7.0.0","ts-node":"~7.0.0","tslint":"~6.1.0","typescript":"~4.0.2"},"gitHead":"0bafb4eab8d023b0fd144edc4aed1c7a1ce64139","_id":"@canvasgfx/logger@1.0.1","_nodeVersion":"16.13.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-Iy5dzB37Ms4bj1K4cupJfZqhvASu2kAB8RVybu2hxvIR6Exb0Hv45LXPiLBapMiOKQV4XJpL/yZ3+/tQKNHJ0w==","shasum":"1be9a2e8468a31395b7f46387b1b024c42ade85d","tarball":"https://registry.npmjs.org/@canvasgfx/logger/-/logger-1.0.1.tgz","fileCount":30,"unpackedSize":41698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH8nkZ5f8PxUdVjWxI8mbB1N9SqPV71dLk5ZOnbfFU93AiBc8Eg3NZ9P+7xk1w12mSXM3hdiIqmEFSMaQ5h9RC+MtQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2s3JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqrhAAj0zehelWTjpcBB0nzDfPhzcwvNrd8Cgd1joTd9NR3Iu0wJUf\r\njt3bA0FvYafK6kDlaSJ3p+XzRsNnWCHNhMsTUXKkx/KUSKRARMVp5szV7d7Y\r\nBqrtgLelRjO3stcn9i7aj8Vq7iUwpDfd4O/UDM9GRo9GwJfIG1ag0b4Rf9D8\r\nft1OSnRgMkkovq1B5ugdLXyFJHMxLSSTgDQQk53Ol7SndjxnWPswk7meJqRZ\r\n3SRhhgreV13z6gDerxQxXpebyGWvQiCmH9Fzs3hj5RLamXB/yMbGk00PCFSC\r\nrXS7zNC4FJ0eFxQ/EpkKwVeqaO7+VS9fxcJv3DoWpPm60B9zimiXigGqRD+g\r\n+pxQbrWKRsE1sOOR1Awl+fKlz/3ZjjmSNzydXI6fRsRCrWsunHonZVdKTEfy\r\nhbX1giQTcnPdgNlOQI0DBvtg3HoNjnE2dpK8ODyXO/LvYqkpQzmW1re5P8jv\r\nItkss46s1O+3RkHRVougPWTjvPkuMX+usfL8eebmtJz8JOaLOruXI2qPPYra\r\nOlFBlHZGxOQzedC7Bq3rWV8S0lDLqotYCF+vbRu7OEXenYBsXZXamhtm1/ns\r\n9JWT0e2bj2ShlxlpjHyLtjbMSQahX1ka+CEJpl5wqex4FLT7GCwAb2ChcHw0\r\nlOx7XtOwu/nF0KY6d9MyqRPxmySn8I3IB10=\r\n=emkP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"},"directories":{},"maintainers":[{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/logger_1.0.1_1675283913370_0.43026987874309697"},"_hasShrinkwrap":false},"2.0.0":{"name":"@canvasgfx/logger","version":"2.0.0","description":"Console logging utility for Angular project.","author":{"name":"reactgular.com"},"homepage":"https://reactgular.com/","license":"MIT","keywords":["angular","angular-library","logging","console","logger"],"repository":{"type":"git","url":"git+https://github.com/canvasgfx/logger.git"},"bugs":{"url":"https://github.com/canvasgfx/logger/issues"},"dependencies":{"tslib":"^2.0.0"},"peerDependencies":{"@angular/common":"^10.0.0","@angular/core":"^10.0.0"},"main":"bundles/canvasgfx-logger.umd.js","module":"fesm2015/canvasgfx-logger.js","es2015":"fesm2015/canvasgfx-logger.js","esm2015":"esm2015/canvasgfx-logger.js","fesm2015":"fesm2015/canvasgfx-logger.js","typings":"canvasgfx-logger.d.ts","metadata":"canvasgfx-logger.metadata.json","sideEffects":false,"gitHead":"2fb95fc2a325f5102dbd970fe8b6da27a1fc97e5","_id":"@canvasgfx/logger@2.0.0","_nodeVersion":"16.13.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-jOX/HvHZ82d5DsH0wuSGEO0QDKU1UERdLk2bVfbkBsTXO82pWMBiXBJTyOdOTGtuKdGh3btDf00fQfG1oTbgZg==","shasum":"f90d1a0e642ab53e49ae3363b19070ef4a453928","tarball":"https://registry.npmjs.org/@canvasgfx/logger/-/logger-2.0.0.tgz","fileCount":25,"unpackedSize":196280,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7klXQYY6TFWS+o/xfK2y9ns2AHLUisrbywL61f4OFjAiB+wuLEHLdoMKAkuEQI07DMXxvTb0P3Icl1WLHYHCuU0w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2tFKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqz1A/+KX3SHOMGS9SAdMNOIzXaqPsMM0fcEW+u7p+iLyBT6qJZpjx9\r\nmHZkLswKL8k4Z3n2oMZdid/g+V1U/Eq8moWfCCU/o+UzpHqYXvpUHpVewuD/\r\nXY1f5+nQTi75pH+ZbfNOcjnOI4/aMcZnnV7cvAmJwq0CigR2r3BBUKmjiDkC\r\ngFT6dO9p1MNpvwzNbZT4odxcPQGfvNw9MZqbhaJKFT2sks0pvP5//kuRHWKt\r\niUQ3dLMlyErBeG2ZW3SRkDqbDknBFY46q/9sIE2gH+n8iy+l0//NdkZJ70qv\r\n/Rrkut9JoyyzIuzIXXlfPZl1JMzcEKyBK+62QPWgrHbxbpfQLe6JE5eoS9a8\r\nueEcbYggYCHN7ZoAgJfBK15vC/WnzR+0jrW+qrVQg28rkuFlFWiICyPkF6ag\r\nj5DKhhM9uIFpJJI+BILtTvH0sljADiYvS4Vzt0tpIgA/LHpHv8fRNwR5+52f\r\njiYBfSjM2Ck6H551ni873kpljCn0diooV7p5CocOFqd+wqV1/15fK2E8HXpX\r\nBFYdv2bd17MQm0qA1iPcA4jWz1TuItGiEmx7G9Y5kjmxWJbBSU1u7B0yrQI7\r\nYLZI0G8UepgH5GsbGCPdoOZoErs6lVwyKhdQCrU/AssWMfqEth89Rvig8pBV\r\nq+Fho82eFeD2BQbKkADJpRLPWCSkv4mv4kE=\r\n=vj9r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"},"directories":{},"maintainers":[{"name":"jbrousseau","email":"jeanbaptiste.rousseau@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/logger_2.0.0_1675284810305_0.8547550737504777"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-01T19:17:13.974Z","0.0.0":"2023-02-01T19:17:14.238Z","modified":"2023-02-02T14:36:13.485Z","1.0.1":"2023-02-01T20:38:33.533Z","2.0.0":"2023-02-01T20:53:30.509Z"},"maintainers":[{"email":"alex.hughes000@gmail.com","name":"g0ddish"},{"email":"jeanbaptiste.rousseau@gmail.com","name":"jbrousseau"}],"description":"Console logging utility for Angular project.","homepage":"https://reactgular.com/","repository":{"type":"git","url":"git+https://github.com/canvasgfx/logger.git"},"author":{"name":"reactgular.com"},"bugs":{"url":"https://github.com/canvasgfx/logger/issues"},"license":"MIT","readme":"[![Build Status](https://travis-ci.org/reactgular/logger.svg?branch=develop)](https://travis-ci.org/reactgular/logger)\r\n[![Coverage Status](https://coveralls.io/repos/github/reactgular/logger/badge.svg?branch=develop)](https://coveralls.io/github/reactgular/logger?branch=develop)\r\n[![npm version](https://badge.fury.io/js/%40reactgular%2Flogger.svg)](https://badge.fury.io/js/%40reactgular%2Flogger)\r\n\r\n## What is Logger?\r\n\r\nLogger is a small Angular service for writing output to the browser's console. It helps make\r\nconsole messages easier to filter by prefixing messages with the current class name. So if you have a component named `MainComponent` you\r\ncan filter by `Main:` and see only console messages from that component.\r\n\r\n> Logger extends console so messages continue to display the current *filename* and *line number*.\r\n\r\nFor example;\r\n\r\n```typescript\r\n@Component({...})\r\nexport class MainComponent implements OnInit {\r\n   private _log: LogService;\r\n   \r\n   private _subject: Subject<string> = new Subject();\r\n   \r\n   public constructor(log: LogService) {\r\n      this._log = log.withPrefix(MainComponent.name);\r\n   }\r\n   \r\n   public ngOnInit() {\r\n      this._log.debug('Hello world!');\r\n      // ^^^ outputs \"Main: Hello world!\"\r\n   }\r\n}\r\n```\r\n\r\n## Table Of Contents\r\n\r\n- [What is Logger?](#what-is-logger)\r\n- [Table Of Contents](#table-of-contents)\r\n- [Why another console logger for Angular?](#why-another-console-logger-for-angular)\r\n  * [Simple](#simple)\r\n- [Installation](#installation)\r\n- [LoggerConfig](#loggerconfig)\r\n- [LogService](#logservice)\r\n- [LogService Prefixes](#logservice-prefixes)\r\n- [LogService Methods](#logservice-methods)\r\n  * [LogService.debug()](#logservicedebug)\r\n  * [LogService.error()](#logserviceerror)\r\n  * [LogService.info()](#logserviceinfo)\r\n  * [LogService.warn()](#logservicewarn)\r\n  * [LogService.getPrefix()](#logservicegetprefix)\r\n  * [LogService.setPrefix()](#logservicesetprefix)\r\n  * [LogService.withPrefix()](#logservicewithprefix)\r\n\r\n## Why another console logger for Angular? \r\n\r\nI've been copying and pasting the same log service between projects for several years. Everything else I tried\r\nwas either too complicated or *erased* the *file name* and *line number* from the browser's console output, and I just kept reusing my trusty\r\nlogger code. I decided it was time to make it a library that could be easily installed and reused.\r\n\r\n### Simple\r\n\r\nLogger works exactly the same as the *console* object in your browser. The only differences are:\r\n\r\n- you have to inject LogService\r\n- you have to give it a prefix\r\n\r\nIt can be added to your classes quickly with an extra parameter on the constructor and two more lines of code. I feel that it\r\ngreatly improves the readability of the console messages making this small extra work worthwhile.\r\n\r\nFor example;\r\n\r\n```typescript\r\n@Component({..})\r\nexport class MainComponent {\r\n   private _log: LogService;\r\n   \r\n   constructor(log: LogService) {\r\n      this._log = log.withPrefix(MainComponent.name);\r\n   }\r\n}\r\n```\r\n\r\nThe prefix value can be anything that you want, but using `MainComponent.name` means that the value will be \r\nupdated if you rename the class using an IDE that automatically updates all usages.\r\n\r\n## Installation\r\n\r\nTo get started, install the package from npm.\r\n\r\n```bash\r\nnpm install @reactgular/logger\r\n```\r\n\r\nthen in `app.module.ts`, import the `LoggerModule`:\r\n\r\n```typescript\r\nimport {NgModule} from '@angular/core';\r\nimport {LoggerModule} from '@reactgular/logger';\r\n\r\n@NgModule({\r\n    imports: [\r\n        LoggerModule.forRoot({enabled: true})\r\n    ]\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\nWhen you include the module in the import, you can pass a configuration object of type LoggerConfig.\r\nIf you are lazy loading, you can just use the `LoggerModule` module.\r\n\r\nOptions such as `enabled` can be passed to the module as the second argument in the `forRoot` method. When `enabled` is\r\nset to *false* the log service gets replaced with a tiny *proxy* service and outputs nothing.\r\n\r\nIt's important for you add `LoggerModule.forRoot()` at the root of your modules.\r\n\r\n## LoggerConfig\r\n\r\nYou can provide a config object of type `LoggerConfig`, as the first parameter for `LoggerModule.forRoot()`.\r\n\r\n```typescript\r\n@NgModule({\r\n  imports: [\r\n    LoggerModule.forRoot({\r\n      console: window.console,\r\n      enabled: !environment.production,\r\n      levels: LOGGER_LEVEL.DEBUG | LOGGER_LEVEL.ERROR | LOGGER_LEVEL.INFO | LOGGER_LEVEL.LOG | LOGGER_LEVEL.WARN,\r\n      tails: ['Component', 'Directive', 'Service', 'Factory', 'Pipe', 'Module', 'Resolver', 'Provider']\r\n    })\r\n  ]\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\n## LogService\r\n\r\nThe `LogService` object provides access to the browser's debugging console, because the specifics of how the console works\r\nacross different browsers varies the available methods are `debug()`, `log()`, `info()`, `error()` and `warn()`.\r\n\r\n```typescript\r\nconstructor(log: LogService) {\r\n   log.info('The constructor method was executed.');\r\n}\r\n```\r\n\r\n## LogService Prefixes\r\n\r\nWhen you're using the `LogService` with Angular classes like components, services, pipes, etc. The name of those classes can be used to set the\r\nprefix string for each log message to the console. Using a prefix value of `\"MainComponent\"` can create *wide* console messages. So this function\r\ncreates a new `LogService` object with a *trimmed* prefix where the *tail* strings have been removed.\r\n\r\nFor example;\r\n\r\nThe following prefix `\"MainComponent\"` will be rewritten to `\"Main\"`.\r\n\r\n```typescript\r\n@Component({...})\r\nexport class MainComponent {\r\n   private _log: LogService;\r\n   constructor(log: LogService) {\r\n      this._log = log.withPrefix(MainComponent.name);\r\n   }\r\n}\r\n```\r\n\r\nWhen you set the `tails` option in the `LoggerConfig` it replaces all the tails that are removed from prefixes. If you don't define an\r\narray of strings to `fails` then these default values will be used.\r\n\r\n```typescript\r\n/**\r\n * Defaults list of tails to remove.\r\n */\r\nexport const LOGGER_TAILS_DEFAULT = ['Component', 'Directive', 'Service', 'Factory', 'Pipe', 'Module', 'Resolver', 'Provider'];\r\n```\r\n\r\nIf you want to add additional tails to be removed you can configure the logger like this:\r\n\r\n```typescript\r\nimport {LoggerModule, LOGGER_TRAILS_DEFAULT} from '@reactgular/logger';\r\n\r\n@NgModule({\r\n  imports: [\r\n    LoggerModule.forRoot({\r\n      tails: [...LOGGER_TAILS_DEFAULT, 'FooBar', 'Magic', 'Proxy']\r\n    })\r\n  ]\r\n})\r\nexport class AppModule {}\r\n\r\n```\r\n\r\n## LogService Methods\r\n\r\nThis section documents methods available on the `LogService` object and gives a few usage examples.\r\n\r\n### LogService.debug()\r\n\r\nOutputs a message to the console with the log level \"debug\".\r\n\r\nThis method can be disabled by excluding `LOGGER_LEVEL.DEBUG` from the `levels` property of `LoggerConfig`.\r\n\r\n> Starting with Chromium 58 this method only appears in Chromium browser consoles when level \"Verbose\" is selected.\r\n\r\n### LogService.error()\r\n\r\nOutputs an error message. You may use [string substitution](https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions) and additional arguments with this method.\r\n\r\nThis method can be disabled by excluding `LOGGER_LEVEL.ERROR` from the `levels` property of `LoggerConfig`.\r\n\r\n### LogService.info()\r\n\r\nInformative logging of information. You may use [string substitution](https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions) and additional arguments with this method.\r\n\r\nThis method can be disabled by excluding `LOGGER_LEVEL.INFO` from the `levels` property of `LoggerConfig`.\r\n\r\n### LogService.warn()\r\n\r\nOutputs a warning message. You may use [string substitution](https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions) and additional arguments with this method.\r\n\r\nThis method can be disabled by excluding `LOGGER_LEVEL.WARN` from the `levels` property of `LoggerConfig`.\r\n\r\n### LogService.getPrefix()\r\n\r\nReturns the prefix string used by the `LogService` object.\r\n\r\n### LogService.setPrefix()\r\n\r\nSets a new prefix for the logger. This will change the *internal* prefix value used by the `LogService`. This function does not have the same\r\neffect as `withPrefix()` which returns a new `LogService` object with a trail strings removed for the prefix.\r\n\r\n### LogService.withPrefix()\r\n\r\nCreates a new `LogService` object with the given prefix. \r\n","readmeFilename":"README.md","keywords":["angular","angular-library","logging","console","logger"]}