Advertisement
StrongJava

logger.ts

Jul 6th, 2022
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. import winston from "winston"
  2.  
  3. const levels = {
  4. error: 0,
  5. warn: 1,
  6. info: 2,
  7. http: 3,
  8. debug: 4,
  9. }
  10.  
  11. const level = () => {
  12. const env = process.env.NODE_ENV || "development"
  13. const isDevelopment = env === "development"
  14. return isDevelopment ? "debug" : "warn"
  15. }
  16.  
  17. const colors = {
  18. error: "red",
  19. warn: "yellow",
  20. info: "green",
  21. http: "magenta",
  22. debug: "white",
  23. }
  24.  
  25. winston.addColors(colors)
  26.  
  27. const timeZoned = () => {
  28. return new Date().toLocaleString("en-US", {
  29. timeZone: "UTC",
  30. })
  31. }
  32.  
  33. const format = winston.format.combine(
  34. // winston.format.timestamp({ format: timeZoned }), "YYYY-MM-DD HH:mm:ss:ms"
  35. winston.format.timestamp({ format: timeZoned }),
  36. winston.format.colorize({ all: true }),
  37. // winston.format.json(),
  38. winston.format.printf(
  39. (info) => `${info.timestamp} ${info.level}: ${info.message}`,
  40. ),
  41. )
  42.  
  43. const transports = [
  44. new winston.transports.Console(),
  45. new winston.transports.File({
  46. filename: "logs/error.log",
  47. level: "error",
  48. }),
  49. new winston.transports.File({ filename: "logs/all.log" }),
  50. ]
  51.  
  52. const Logger = winston.createLogger({
  53. level: level(),
  54. levels,
  55. format,
  56. transports,
  57. })
  58.  
  59. export default Logger
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement