summaryrefslogtreecommitdiffstats
path: root/routers/private/ssh_log.go
diff options
context:
space:
mode:
authora1012112796 <1012112796@qq.com>2021-05-21 23:37:16 +0200
committerGitHub <noreply@github.com>2021-05-21 23:37:16 +0200
commitfec832402625d856aba0cc2fbdec9e773469ad87 (patch)
treec752057af4d939c7a7d61d6e5817cd68da39af57 /routers/private/ssh_log.go
parentfix default avatar url (#15938) (diff)
downloadforgejo-fec832402625d856aba0cc2fbdec9e773469ad87.tar.xz
forgejo-fec832402625d856aba0cc2fbdec9e773469ad87.zip
add a new internal hook to save ssh log (#15787)
* add a new internal hook to save ssh log as title, when a ssh error ocure like #15785. only when switch ``RUN_MODE`` to dev can we found which error is ocure. But this way is not a good idea for production envirment. this changes try save ssh error mesage to the log file like other log by a new internal hook. I think it's usefull for find error message in production envirment. Thanks. Signed-off-by: a1012112796 <1012112796@qq.com> * rename and fix nit * Update modules/private/hook.go Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to '')
-rw-r--r--routers/private/ssh_log.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/routers/private/ssh_log.go b/routers/private/ssh_log.go
new file mode 100644
index 0000000000..2f1793a0e0
--- /dev/null
+++ b/routers/private/ssh_log.go
@@ -0,0 +1,34 @@
+// Copyright 2021 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package private
+
+import (
+ "net/http"
+
+ "code.gitea.io/gitea/modules/context"
+ "code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/private"
+ "code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/web"
+)
+
+// SSHLog hook to response ssh log
+func SSHLog(ctx *context.PrivateContext) {
+ if !setting.EnableSSHLog {
+ ctx.Status(http.StatusOK)
+ return
+ }
+
+ opts := web.GetForm(ctx).(*private.SSHLogOption)
+
+ if opts.IsError {
+ log.Error("ssh: %v", opts.Message)
+ ctx.Status(http.StatusOK)
+ return
+ }
+
+ log.Debug("ssh: %v", opts.Message)
+ ctx.Status(http.StatusOK)
+}