大佬教程收集整理的这篇文章主要介绍了winston 未知记录器级别:未定义,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 winston
来记录错误,在生产中它记录到文件,在开发中它记录到 console
。我还设置了其他日志传输,即用于将错误发送到 slack 的自定义传输。
下面是我的logger.Js
const expressWinston = require('express-winston');
const { createLogger,format,transports } = require('winston');
const SlackAPIAccessDevTransport = require('./winston-slack');
const accessLogger = expressWinston.logger({
transports: [
new SlackAPIAccessDevTransport(),],format: format.combine(
format.colorize(),format.Json(),),});
const logTofile = createLogger({
transports: [
new transports.file({
Json: true,maxfiles: 5,level: 'error',colorize: false,filename: 'logs/error.log',maxsize: 5242880,// 5MB
}),});
const logToConsole = createLogger({
level: 'info',transports: [
new transports.Console({
format: format.combine(
format.colorize(),format.simple(),}),});
module.exports = {
logTofile,logToConsole,accessLogger,};
记录到文件工作正常,但对于 Console
传输,我得到 level undefined
这是我的错误中间件。
const Logger = require('../utils/logger');
module.exports = async (err,req,res,next) => {
// log any kind of error
console.log(err);
const errorData = {
date: new Date().toISOString(),env: process.env.NODE_ENV,name: err.name,message: err.message,API: req.url,method: req.method,stack: err.stack,body: req.body,clIEnt: req.connection.remoteAddress,};
if (process.env.NODE_ENV === 'production') {
Logger.logTofile.log(errorData);
} else {
Logger.logToConsole.log(err);
}
return res.status(500).send('Something went wrong!');
}
您需要使用 format.errors。
import { useLayoutEffect,useRef } from 'react';
const isBrowser = typeof window !== `undefined`;
const getScrollPosition = ({ element,useWindow }) => {
if (!isBrowser) return { x: 0,y: 0 };
const target = element ? element.current : document.body,position = target.getBoundingClientRect();
return useWindow
? { x: window.scrollX,y: window.scrollY }
: { x: position.left,y: position.top };
};
export const useScrollPosition = (effect,deps,element,useWindow,wait) => {
const position = useRef(getScrollPosition({ useWindow }));
let throttleTimeout = null;
const callBACk = () => {
const currentPosition = getScrollPosition({ element,useWindow });
effect({ previousPosition: position.current,currentPosition: currentPosition });
position.current = currentPosition;
throttleTimeout = null;
};
useLayoutEffect(() => {
const handleScroll = () => {
if (wait && !throttleTimeout) throttleTimeout = setTimeout(callBACk,wait);
else callBACk();
};
window.addEventListener(`scroll`,handleScroll);
return () => window.removeEventListener(`scroll`,handleScroll);
},deps);
};
格式允许您将 JavaScript 错误的实例直接传递给记录器。它允许您指定是否不包括堆栈跟踪。
此外,最好为 import { useScrollPosition } from '/path/to/useScrollPosition/useScrollPosition';
日志添加自定义格式。
例如
errors
结果:
error
以上是大佬教程为你收集整理的winston 未知记录器级别:未定义全部内容,希望文章能够帮你解决winston 未知记录器级别:未定义所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。