| 10 | ) |
| 11 | |
| 12 | func ExportSSHLogs(filename string, logs []dto.SSHHistory) error { |
| 13 | file, err := os.Create(filename) |
| 14 | if err != nil { |
| 15 | return err |
| 16 | } |
| 17 | defer file.Close() |
| 18 | |
| 19 | writer := csv.NewWriter(file) |
| 20 | defer writer.Flush() |
| 21 | |
| 22 | if err := writer.Write([]string{ |
| 23 | i18n.GetMsgByKey("ExportIP"), |
| 24 | i18n.GetMsgByKey("ExportArea"), |
| 25 | i18n.GetMsgByKey("ExportPort"), |
| 26 | i18n.GetMsgByKey("ExportAuthMode"), |
| 27 | i18n.GetMsgByKey("ExportUser"), |
| 28 | i18n.GetMsgByKey("ExportStatus"), |
| 29 | i18n.GetMsgByKey("ExportDate"), |
| 30 | }); err != nil { |
| 31 | return err |
| 32 | } |
| 33 | |
| 34 | for _, log := range logs { |
| 35 | record := []string{ |
| 36 | log.Address, |
| 37 | log.Area, |
| 38 | log.Port, |
| 39 | log.AuthMode, |
| 40 | log.User, |
| 41 | log.Status, |
| 42 | log.Date.Format(constant.DateTimeLayout), |
| 43 | } |
| 44 | if err := writer.Write(record); err != nil { |
| 45 | return err |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | return nil |
| 50 | } |