Browse Source

Updated shutdown sequence log

Toby Chui 3 years ago
parent
commit
32bf29e0ab
10 changed files with 42 additions and 46 deletions
  1. 1 2
      cluster.go
  2. 1 2
      disk.go
  3. 12 13
      hardware.power.go
  4. 5 5
      main.go
  5. 2 3
      mediaServer.go
  6. 3 1
      mod/info/logger/logger.go
  7. 1 1
      module.go
  8. 1 2
      network.forward.go
  9. 7 7
      network.ftp.go
  10. 9 10
      network.go

+ 1 - 2
cluster.go

@@ -1,7 +1,6 @@
 package main
 package main
 
 
 import (
 import (
-	"log"
 	"net/http"
 	"net/http"
 
 
 	"imuslab.com/arozos/mod/network/neighbour"
 	"imuslab.com/arozos/mod/network/neighbour"
@@ -63,7 +62,7 @@ func ClusterInit() {
 		*/
 		*/
 		//WIP
 		//WIP
 	} else {
 	} else {
-		log.Println("MDNS not enabled or startup failed. Skipping Cluster Scanner initiation.")
+		systemWideLogger.PrintAndLog("Cluster", "MDNS not enabled or startup failed. Skipping Cluster Scanner initiation.", nil)
 	}
 	}
 
 
 }
 }

+ 1 - 2
disk.go

@@ -7,7 +7,6 @@ package main
 */
 */
 
 
 import (
 import (
-	"log"
 	"net/http"
 	"net/http"
 
 
 	"imuslab.com/arozos/mod/common"
 	"imuslab.com/arozos/mod/common"
@@ -86,7 +85,7 @@ func DiskServiceInit() {
 			smartListener, err := smart.NewSmartListener()
 			smartListener, err := smart.NewSmartListener()
 			if err != nil {
 			if err != nil {
 				//Listener creation failed
 				//Listener creation failed
-				log.Println("Failed to create SMART listener: " + err.Error())
+				systemWideLogger.PrintAndLog("Disk", "Failed to create SMART listener: "+err.Error(), err)
 			} else {
 			} else {
 				//Listener created. Register endpoints
 				//Listener created. Register endpoints
 
 

+ 12 - 13
hardware.power.go

@@ -1,7 +1,6 @@
 package main
 package main
 
 
 import (
 import (
-	"log"
 	"net/http"
 	"net/http"
 
 
 	"os/exec"
 	"os/exec"
@@ -74,10 +73,10 @@ func hardware_power_poweroff(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("shutdown", "-s", "-t", "20")
 		cmd := exec.Command("shutdown", "-s", "-t", "20")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 
 
 	if runtime.GOOS == "linux" {
 	if runtime.GOOS == "linux" {
@@ -85,10 +84,10 @@ func hardware_power_poweroff(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("/sbin/shutdown")
 		cmd := exec.Command("/sbin/shutdown")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 
 
 	if runtime.GOOS == "darwin" {
 	if runtime.GOOS == "darwin" {
@@ -96,10 +95,10 @@ func hardware_power_poweroff(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("sudo", "shutdown", "-h", "+1")
 		cmd := exec.Command("sudo", "shutdown", "-h", "+1")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 
 
 	common.SendOK(w)
 	common.SendOK(w)
@@ -141,10 +140,10 @@ func hardware_power_restart(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("shutdown", "-r", "-t", "20")
 		cmd := exec.Command("shutdown", "-r", "-t", "20")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 
 
 	if runtime.GOOS == "linux" {
 	if runtime.GOOS == "linux" {
@@ -152,10 +151,10 @@ func hardware_power_restart(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("systemctl", "reboot")
 		cmd := exec.Command("systemctl", "reboot")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 
 
 	if runtime.GOOS == "darwin" {
 	if runtime.GOOS == "darwin" {
@@ -163,10 +162,10 @@ func hardware_power_restart(w http.ResponseWriter, r *http.Request) {
 		cmd := exec.Command("shutdown", "-r", "+1")
 		cmd := exec.Command("shutdown", "-r", "+1")
 		out, err := cmd.CombinedOutput()
 		out, err := cmd.CombinedOutput()
 		if err != nil {
 		if err != nil {
-			log.Println(string(out))
+			systemWideLogger.PrintAndLog("Power", string(out), err)
 			common.SendErrorResponse(w, string(out))
 			common.SendErrorResponse(w, string(out))
 		}
 		}
-		log.Println(string(out))
+		systemWideLogger.PrintAndLog("Power", string(out), nil)
 	}
 	}
 	common.SendOK(w)
 	common.SendOK(w)
 }
 }

+ 5 - 5
main.go

@@ -39,18 +39,18 @@ func SetupCloseHandler() {
 
 
 func executeShutdownSequence() {
 func executeShutdownSequence() {
 	//Shutdown authAgent
 	//Shutdown authAgent
-	log.Println("\r- Shutting down auth gateway")
+	systemWideLogger.PrintAndLog("System", "<!> Shutting down auth gateway", nil)
 	authAgent.Close()
 	authAgent.Close()
 
 
 	//Shutdown all storage pools
 	//Shutdown all storage pools
-	log.Println("\r- Shutting down storage pools")
+	systemWideLogger.PrintAndLog("System", "<!> Shutting down storage pools", nil)
 	closeAllStoragePools()
 	closeAllStoragePools()
 
 
 	//Shutdown Logger
 	//Shutdown Logger
 	systemWideLogger.Close()
 	systemWideLogger.Close()
 
 
 	//Shutdown database
 	//Shutdown database
-	log.Println("\r- Shutting down database")
+	systemWideLogger.PrintAndLog("System", "<!> Shutting down database", nil)
 	sysdb.Close()
 	sysdb.Close()
 
 
 	//Shutdown network services
 	//Shutdown network services
@@ -58,12 +58,12 @@ func executeShutdownSequence() {
 
 
 	//Shutdown FTP Server
 	//Shutdown FTP Server
 	if ftpServer != nil {
 	if ftpServer != nil {
-		log.Println("\r- Shutting down FTP Server")
+		systemWideLogger.PrintAndLog("System", "<!> Shutting down FTP Server", nil)
 		ftpServer.Close()
 		ftpServer.Close()
 	}
 	}
 
 
 	//Cleaning up tmp files
 	//Cleaning up tmp files
-	log.Println("\r- Cleaning up tmp folder")
+	systemWideLogger.PrintAndLog("System", "<!> Cleaning up tmp folder", nil)
 	os.RemoveAll(*tmp_directory)
 	os.RemoveAll(*tmp_directory)
 	//Do other things
 	//Do other things
 	os.Exit(0)
 	os.Exit(0)

+ 2 - 3
mediaServer.go

@@ -5,7 +5,6 @@ import (
 	"encoding/hex"
 	"encoding/hex"
 	"errors"
 	"errors"
 	"io"
 	"io"
-	"log"
 	"net/http"
 	"net/http"
 	"net/url"
 	"net/url"
 	"os"
 	"os"
@@ -103,12 +102,12 @@ func media_server_validateSourceFile(w http.ResponseWriter, r *http.Request) (*f
 		possibleVirtualFilePath := urlInfo[len(urlInfo)-1]
 		possibleVirtualFilePath := urlInfo[len(urlInfo)-1]
 		possibleRealpath, err := fshAbs.VirtualPathToRealPath(possibleVirtualFilePath, userinfo.Username)
 		possibleRealpath, err := fshAbs.VirtualPathToRealPath(possibleVirtualFilePath, userinfo.Username)
 		if err != nil {
 		if err != nil {
-			log.Println("Error when trying to serve file in compatibility mode", err.Error())
+			systemWideLogger.PrintAndLog("Media Server", "Error when trying to serve file in compatibility mode", err)
 			return nil, "", "", errors.New("Error when trying to serve file in compatibility mode")
 			return nil, "", "", errors.New("Error when trying to serve file in compatibility mode")
 		}
 		}
 		if fshAbs.FileExists(possibleRealpath) {
 		if fshAbs.FileExists(possibleRealpath) {
 			realFilepath = possibleRealpath
 			realFilepath = possibleRealpath
-			log.Println("[Media Server] Serving file " + filepath.Base(possibleRealpath) + " in compatibility mode. Do not to use '&' or '+' sign in filename! ")
+			systemWideLogger.PrintAndLog("Media Server", "Serving file "+filepath.Base(possibleRealpath)+" in compatibility mode. Do not to use '&' or '+' sign in filename! ", nil)
 			return fsh, targetfile, realFilepath, nil
 			return fsh, targetfile, realFilepath, nil
 		} else {
 		} else {
 			return nil, "", "", errors.New("File not exists")
 			return nil, "", "", errors.New("File not exists")

+ 3 - 1
mod/info/logger/logger.go

@@ -39,7 +39,9 @@ func NewLogger(logFilePrefix string, logFolder string, logToFile bool) (*Logger,
 }
 }
 
 
 func (l *Logger) PrintAndLog(title string, message string, originalError error) {
 func (l *Logger) PrintAndLog(title string, message string, originalError error) {
-	l.Log(title, message, originalError)
+	go func() {
+		l.Log(title, message, originalError)
+	}()
 	log.Println("[" + title + "] " + message)
 	log.Println("[" + title + "] " + message)
 }
 }
 
 

+ 1 - 1
module.go

@@ -70,7 +70,7 @@ func ModuleServiceInit() {
 			//Translate it to realpath
 			//Translate it to realpath
 			rpath, err := fsh.FileSystemAbstraction.VirtualPathToRealPath(subpath, userinfo.Username)
 			rpath, err := fsh.FileSystemAbstraction.VirtualPathToRealPath(subpath, userinfo.Username)
 			if err != nil {
 			if err != nil {
-				log.Println("*Module Installer* Failed to install module: ", err.Error())
+				systemWideLogger.PrintAndLog("Module Installer", "Failed to install module: "+err.Error(), err)
 				common.SendErrorResponse(w, "Invalid installer path")
 				common.SendErrorResponse(w, "Invalid installer path")
 				return
 				return
 			}
 			}

+ 1 - 2
network.forward.go

@@ -2,7 +2,6 @@ package main
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
-	"log"
 	"net/http"
 	"net/http"
 	"strconv"
 	"strconv"
 
 
@@ -36,7 +35,7 @@ func portForwardInit() {
 			//Forward the recorded port
 			//Forward the recorded port
 			err := UPNP.ForwardPort(portNumber, policyName)
 			err := UPNP.ForwardPort(portNumber, policyName)
 			if err != nil {
 			if err != nil {
-				log.Println("Port Fordware Failed: ", err.Error(), ". Skipping "+policyName)
+				systemWideLogger.PrintAndLog("UpnP", "Port Fordware Failed: "+err.Error()+". Skipping "+policyName, err)
 			}
 			}
 
 
 		}
 		}

+ 7 - 7
network.ftp.go

@@ -3,9 +3,9 @@ package main
 import (
 import (
 	"encoding/json"
 	"encoding/json"
 	"errors"
 	"errors"
-	"log"
 	"net/http"
 	"net/http"
 	"strconv"
 	"strconv"
+	"strings"
 
 
 	"imuslab.com/arozos/mod/common"
 	"imuslab.com/arozos/mod/common"
 	prout "imuslab.com/arozos/mod/prouter"
 	prout "imuslab.com/arozos/mod/prouter"
@@ -97,7 +97,7 @@ func storageHandleFTPPassiveModeSettings(w http.ResponseWriter, r *http.Request)
 			return
 			return
 		}
 		}
 
 
-		log.Println("Updatng FTP Server PassiveMode to", passive)
+		systemWideLogger.PrintAndLog("FTP", "Updating FTP Server PassiveMode to"+passive, nil)
 		if passive == "true" {
 		if passive == "true" {
 			sysdb.Write("ftp", "passive", true)
 			sysdb.Write("ftp", "passive", true)
 		} else {
 		} else {
@@ -133,7 +133,7 @@ func storageHandleFTPServerStop(w http.ResponseWriter, r *http.Request) {
 		ftpServer.Close()
 		ftpServer.Close()
 	}
 	}
 	sysdb.Write("ftp", "default", false)
 	sysdb.Write("ftp", "default", false)
-	log.Println("FTP Server Stopped")
+	systemWideLogger.PrintAndLog("FTP", "FTP Server Stopped", nil)
 	common.SendOK(w)
 	common.SendOK(w)
 }
 }
 
 
@@ -141,10 +141,10 @@ func storageHandleFTPServerStop(w http.ResponseWriter, r *http.Request) {
 func storageHandleFTPuPnP(w http.ResponseWriter, r *http.Request) {
 func storageHandleFTPuPnP(w http.ResponseWriter, r *http.Request) {
 	enable, _ := common.Mv(r, "enable", false)
 	enable, _ := common.Mv(r, "enable", false)
 	if enable == "true" {
 	if enable == "true" {
-		log.Println("Enabling UPnP on FTP Server Port")
+		systemWideLogger.PrintAndLog("FTP", "Enabling UPnP on FTP Server Port", nil)
 		sysdb.Write("ftp", "upnp", true)
 		sysdb.Write("ftp", "upnp", true)
 	} else {
 	} else {
-		log.Println("Disabling UPnP on FTP Server Port")
+		systemWideLogger.PrintAndLog("FTP", "Disabling UPnP on FTP Server Port", nil)
 		sysdb.Write("ftp", "upnp", false)
 		sysdb.Write("ftp", "upnp", false)
 	}
 	}
 
 
@@ -173,7 +173,7 @@ func storageHandleFTPAccessUpdate(w http.ResponseWriter, r *http.Request) {
 		return
 		return
 	}
 	}
 
 
-	log.Println("Updating FTP Access group to: ", groups)
+	systemWideLogger.PrintAndLog("FTP", "Updating FTP Access group to: "+strings.Join(groups, ","), nil)
 	//Set the accessable group
 	//Set the accessable group
 	ftp.UpdateAccessableGroups(sysdb, groups)
 	ftp.UpdateAccessableGroups(sysdb, groups)
 
 
@@ -339,7 +339,7 @@ func storageFTPServerStart() error {
 				//Forward the port
 				//Forward the port
 				err := UPNP.ForwardPort(ftpServer.Port, *host_name+" FTP Server")
 				err := UPNP.ForwardPort(ftpServer.Port, *host_name+" FTP Server")
 				if err != nil {
 				if err != nil {
-					log.Println("Failed to start FTP Server UPnP: ", err)
+					systemWideLogger.PrintAndLog("FTP", "Failed to start FTP Server UPnP ", err)
 					ftpServer.UPNPEnabled = false
 					ftpServer.UPNPEnabled = false
 					return err
 					return err
 				} else {
 				} else {

+ 9 - 10
network.go

@@ -1,7 +1,6 @@
 package main
 package main
 
 
 import (
 import (
-	"log"
 	"net/http"
 	"net/http"
 	"strconv"
 	"strconv"
 
 
@@ -24,7 +23,7 @@ var (
 )
 )
 
 
 func NetworkServiceInit() {
 func NetworkServiceInit() {
-	log.Println("Starting ArOZ Network Services")
+	systemWideLogger.PrintAndLog("Network", "Starting ArOZ Network Services", nil)
 
 
 	//Create a router that allow users with System Setting access to access these api endpoints
 	//Create a router that allow users with System Setting access to access these api endpoints
 	router := prout.NewModuleRouter(prout.RouterOption{
 	router := prout.NewModuleRouter(prout.RouterOption{
@@ -116,7 +115,7 @@ func StartNetworkServices() {
 		})
 		})
 
 
 		if err != nil {
 		if err != nil {
-			log.Println("MDNS Startup Failed: " + err.Error() + ". Running in Offline Mode.")
+			systemWideLogger.PrintAndLog("Network", "MDNS Startup Failed. Running in Offline Mode.", err)
 		} else {
 		} else {
 			MDNS = m
 			MDNS = m
 		}
 		}
@@ -130,7 +129,7 @@ func StartNetworkServices() {
 		//Get outbound ip
 		//Get outbound ip
 		obip, err := network.GetOutboundIP()
 		obip, err := network.GetOutboundIP()
 		if err != nil {
 		if err != nil {
-			log.Println("SSDP Startup Failed: " + err.Error() + ". Running in Offline Mode.")
+			systemWideLogger.PrintAndLog("Network", "SSDP Startup Failed. Running in Offline Mode.", err)
 		} else {
 		} else {
 			thisIp := obip.String()
 			thisIp := obip.String()
 			adv, err := ssdp.NewSSDPHost(thisIp, *listen_port, "system/ssdp.xml", ssdp.SSDPOption{
 			adv, err := ssdp.NewSSDPHost(thisIp, *listen_port, "system/ssdp.xml", ssdp.SSDPOption{
@@ -145,7 +144,7 @@ func StartNetworkServices() {
 			})
 			})
 
 
 			if err != nil {
 			if err != nil {
-				log.Println("SSDP Startup Failed: " + err.Error() + ". Running in Offline Mode.")
+				systemWideLogger.PrintAndLog("Network", "SSDP Startup Failed. Running in Offline Mode.", err)
 			} else {
 			} else {
 				//OK! Start SSDP Service
 				//OK! Start SSDP Service
 				SSDP = adv
 				SSDP = adv
@@ -168,7 +167,7 @@ func StartNetworkServices() {
 		}
 		}
 
 
 		if err != nil {
 		if err != nil {
-			log.Println("UPnP Startup Failed: " + err.Error())
+			systemWideLogger.PrintAndLog("Network", "UPnP Startup Failed: "+err.Error(), err)
 		} else {
 		} else {
 
 
 			//Bind the http port if running in https and http server is not disabled
 			//Bind the http port if running in https and http server is not disabled
@@ -194,7 +193,7 @@ func StartNetworkServices() {
 			}
 			}
 
 
 			localEndpoint := obipstring + ":" + strconv.Itoa(*listen_port)
 			localEndpoint := obipstring + ":" + strconv.Itoa(*listen_port)
-			log.Println("Automatic Port Forwarding Completed. Forwarding all request from " + connectionEndpoint + " to " + localEndpoint)
+			systemWideLogger.PrintAndLog("Network", "Automatic Port Forwarding Completed. Forwarding all request from "+connectionEndpoint+" to "+localEndpoint, nil)
 
 
 		}
 		}
 
 
@@ -205,19 +204,19 @@ func StopNetworkServices() {
 	//log.Println("Shutting Down Network Services...")
 	//log.Println("Shutting Down Network Services...")
 	//Shutdown uPNP service if enabled
 	//Shutdown uPNP service if enabled
 	if *allow_upnp {
 	if *allow_upnp {
-		log.Println("\r- Shutting down uPNP service")
+		systemWideLogger.PrintAndLog("System", "<!> Shutting down uPNP service", nil)
 		UPNP.Close()
 		UPNP.Close()
 	}
 	}
 
 
 	//Shutdown SSDP service if enabled
 	//Shutdown SSDP service if enabled
 	if *allow_ssdp {
 	if *allow_ssdp {
-		log.Println("\r- Shutting down SSDP service")
+		systemWideLogger.PrintAndLog("System", "<!> Shutting down SSDP service", nil)
 		SSDP.Close()
 		SSDP.Close()
 	}
 	}
 
 
 	//Shutdown MDNS if enabled
 	//Shutdown MDNS if enabled
 	if *allow_mdns {
 	if *allow_mdns {
-		log.Println("\r- Shutting down MDNS service")
+		systemWideLogger.PrintAndLog("System", "<!> Shutting down MDNS service", nil)
 		MDNS.Close()
 		MDNS.Close()
 	}
 	}
 }
 }