hieda_adapter.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package openngvfs
  2. import (
  3. "fmt"
  4. "git.swzry.com/zry/GoHiedaLogger/hiedalog"
  5. "git.swzry.com/zry/io_writer_to_logger"
  6. "io"
  7. )
  8. var _ LogHandlerIntf = (*LoggerHiedaLogAdapter)(nil)
  9. type LoggerHiedaLogAdapter struct {
  10. logger *hiedalog.HiedaLogger
  11. }
  12. func (e LoggerHiedaLogAdapter) FsInitWasm(name string) {
  13. e.logger.LogComplex("openngvfs", hiedalog.DLN_ERROR, map[string]string{
  14. "type": "will_init_by_wasm",
  15. "wasm": name,
  16. })
  17. }
  18. func (e LoggerHiedaLogAdapter) ChildFsError(mid int64, fstype, mountpoint, path, action string, rawErr error) {
  19. e.logger.LogComplex("openngvfs", hiedalog.DLN_ERROR, map[string]string{
  20. "type": "child_fs_error",
  21. "path": path,
  22. "fstype": fstype,
  23. "action": action,
  24. "mnt": mountpoint,
  25. "mid": fmt.Sprintf("%016X", mid),
  26. "raw_err": rawErr.Error(),
  27. })
  28. }
  29. func (e LoggerHiedaLogAdapter) NoAvailableMountPointForThisPath(path string, action string) {
  30. e.logger.LogComplex("openngvfs", hiedalog.DLN_ERROR, map[string]string{
  31. "type": "no_mnt_point_error",
  32. "path": path,
  33. "action": action,
  34. })
  35. }
  36. func (e LoggerHiedaLogAdapter) InitError(err error) {
  37. e.logger.LogComplex("openngvfs", hiedalog.DLN_ERROR, map[string]string{
  38. "type": "openngvfs_init_error",
  39. "raw_err": err.Error(),
  40. })
  41. }
  42. func (e LoggerHiedaLogAdapter) UnknownError(path string, action string, err error) {
  43. e.logger.LogComplex("openngvfs", hiedalog.DLN_ERROR, map[string]string{
  44. "type": "unknown_error",
  45. "path": path,
  46. "action": action,
  47. "raw_err": err.Error(),
  48. })
  49. }
  50. var _ io.WriteCloser = (*IOWriterAdapter)(nil)
  51. type IOWriterAdapter struct {
  52. logger *hiedalog.HiedaLogger
  53. iowr *io_writer_to_logger.WriterLogWrapper
  54. module string
  55. level string
  56. }
  57. func (a IOWriterAdapter) Write(p []byte) (n int, err error) {
  58. return a.iowr.Write(p)
  59. }
  60. func (a IOWriterAdapter) Close() error {
  61. return a.iowr.Close()
  62. }
  63. func (a IOWriterAdapter) Run() {
  64. a.iowr.Run()
  65. }
  66. func (a IOWriterAdapter) log(msg string) {
  67. a.logger.LogString(a.module, a.level, msg)
  68. }
  69. func NewIOWriterAdapter(logger *hiedalog.HiedaLogger, module string, level string) *IOWriterAdapter {
  70. a := &IOWriterAdapter{
  71. logger: logger,
  72. module: module,
  73. level: level,
  74. }
  75. a.iowr = io_writer_to_logger.NewWriterLogWrapper(a.log)
  76. return a
  77. }