1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/packages/core/src/common/winston-logger.injectable.ts
Sami Tiilikainen ac2d0e46ff
Renderer file logging transport (#6795)
* Renderer file logging transport

Add file logging to renderer, writing separate log files for renderer main frame and each cluster frame.

Related to lensapp/support-lens-extension#118

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Switch renderer file log level to info

There is too much noise on debug level from api responses etc

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Unmount on pagehide instead of beforeunload

It seems cluster onbeforeunload is not triggered when iframe is removed from dom by the parent (when disconnecting a cluster).

While on root/main frame the beforeunload event does work, it seems to be adviced to use pagehide instead.

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Close log files on unmount

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Improve file handle closing in different situations

This should cover reloading main and cluster frames and closing cluster frame throught disconnecting cluster. No file handles should be left open now.

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Fix renderer log rotation

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Switch back to beforeunload in root frame

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

* Remove capturing phase event usage

Does not seem to be needed for log files to be successfully closed and caused integration tests to fail.

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>

---------

Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com>
2023-02-08 05:50:22 -05:00

21 lines
624 B
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { createLogger, format } from "winston";
import { loggerTransportInjectionToken } from "./logger/transports";
const winstonLoggerInjectable = getInjectable({
id: "winston-logger",
instantiate: (di) => createLogger({
format: format.combine(
format.splat(),
format.simple(),
),
transports: di.injectMany(loggerTransportInjectionToken),
}),
});
export default winstonLoggerInjectable;