summaryrefslogtreecommitdiffhomepage
path: root/Role
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-04-28 12:50:53 -0400
committerJoey Hess <joeyh@joeyh.name>2017-04-28 12:51:57 -0400
commite833b89e2a1a1c2acbc0eb8bed1760ef0e50f3c5 (patch)
tree6e29670d7aeb13fc81ba30a68e21813d6ecab470 /Role
parentd605fdc0bbed885a003a8c42c53ce3dfadf07c49 (diff)
downloaddebug-me-e833b89e2a1a1c2acbc0eb8bed1760ef0e50f3c5.tar.gz
log to ~/.debug-me/log/
Make watcher also log and display the name of the logfile at start and end of session. --download still downloads to current directory because that seems less surprising than downloading to elsewhere. Also, the user might want to keep a copy of the local log while downloading the server log.
Diffstat (limited to 'Role')
-rw-r--r--Role/Developer.hs2
-rw-r--r--Role/User.hs2
-rw-r--r--Role/Watcher.hs13
3 files changed, 9 insertions, 8 deletions
diff --git a/Role/Developer.hs b/Role/Developer.hs
index 9e1f40e..726a53d 100644
--- a/Role/Developer.hs
+++ b/Role/Developer.hs
@@ -46,7 +46,7 @@ run' runner url = do
void $ runClientApp app
developer :: TMVar (TVar DeveloperState) -> TMChan (Message Entered) -> TMChan AnyMessage -> SessionID -> IO ()
-developer dsv ichan ochan _ = withLogger "debug-me-developer.log" $ \logger -> do
+developer dsv ichan ochan sid = withSessionLogger sid $ \logger -> do
(devstate, startoutput) <- processSessionStart ochan logger dsv
emitOutput startoutput
ok <- authUser ichan ochan devstate logger
diff --git a/Role/User.hs b/Role/User.hs
index fe679a5..4ecb31f 100644
--- a/Role/User.hs
+++ b/Role/User.hs
@@ -40,7 +40,7 @@ run os = fromMaybe (ExitFailure 101) <$> connect
putStrLn "Others can connect to this session and help you debug by running:"
putStrLn $ " debug-me --debug " ++ url
hFlush stdout
- withLogger "debug-me.log" $ go ochan ichan usv
+ withSessionLogger sid $ go ochan ichan usv
go ochan ichan usv logger = do
(cmd, cmdparams) <- shellCommand os
runWithPty cmd cmdparams $ \(p, ph) -> do
diff --git a/Role/Watcher.hs b/Role/Watcher.hs
index a4328f8..7b809f0 100644
--- a/Role/Watcher.hs
+++ b/Role/Watcher.hs
@@ -15,16 +15,17 @@ run :: WatchOpts -> IO ()
run = run' watcher . watchUrl
watcher :: TMVar (TVar DeveloperState) -> TMChan (Message Entered) -> TMChan AnyMessage -> SessionID -> IO ()
-watcher dsv _ichan ochan _ = inRawMode $ do
- (st, startoutput) <- processSessionStart ochan nullLogger dsv
+watcher dsv _ichan ochan sid = withSessionLogger sid $ \logger -> inRawMode $ do
+ (st, startoutput) <- processSessionStart ochan logger dsv
emitOutput startoutput
- go st
+ go logger st
where
- go st = do
+ go logger st = do
ts <- getPOSIXTime
v <- atomically $ getServerMessage ochan st ts
case v of
Nothing -> return ()
- Just (o, _msg) -> do
+ Just (o, msg) -> do
+ _ <- logger msg
emitOutput o
- go st
+ go logger st