Just to make it clear, my XMobar uses UnsafeStdinReader and SpawnPipe to send information about workspaces right now. Here are the relevant portions of the configuration:
main = do
    xmprocleft <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc0.hs"
    xmonad $ docks $ ewmhFullscreen $ ewmh $ def
        { manageHook         = myManageHook <+> manageDocks
        , modMask            = myModMask
        , terminal           = myTerminal
        , startupHook        = myStartupHook
        , layoutHook         = showWName' myShowWNameTheme $ myLayoutHook
        , workspaces         = myWorkspaces
        , borderWidth        = myBorderWidth
        , normalBorderColor  = myNormColor
        , focusedBorderColor = myFocusColor
        , logHook = dynamicLogWithPP $ xmobarPP
              { ppOutput = \x -> hPutStrLn xmprocleft x                          
              , ppCurrent = xmobarColor "#f8f16a" "" . wrap "<fn=1>" "</fn>"         -- Workspace that I am viewing now
              , ppVisible = xmobarColor "#98be65" "" . wrap "<fn=1>" "</fn>" . clickable              -- Workspace that is open on any monitor other than this one
              , ppHidden = xmobarColor "#2ac3de" "" . wrap "<fn=1>" "</fn>" . clickable -- Hidden workspaces that have any open software in it but not open on any monitors
              , ppHiddenNoWindows = xmobarColor "#c0caf5" "" . wrap "<fn=1>" "</fn>" . clickable     -- Workspaces with no open softwares and not open on any monitors
              , ppTitle = xmobarColor "#c0caf5" "" . shorten 60               -- Title of active window
              , ppSep =  "<fc=#444b6a> | </fc>"                    -- Separator character
              , ppUrgent = xmobarColor "#EBCB8B" "" . wrap "!<fn=1>" "</fn>!"            -- Urgent workspace
              , ppExtras  = [windowCount]                                     -- # of windows current workspace
                 -- name of workspaces, current layout, current title of open software, number of open windows in current workspace
              , ppOrder  = \(ws:_:_:_) -> [ws]                               -- stopped showing the current layout, number of open programs in current workspace
              }
        } `additionalKeysP` myKeys
What I am trying to achieve
According to the XMonad Wiki, SpawnPipe is deprecated for the newer use of XMonadLog to send data to XMobar. I am trying to use Dynamic status bar using dynamicEasySBs according to XMonad.Hooks.StatusBar.PP and XMonad.Hooks.StatusBar.
I did make necessary changes on the XMobar config too. But, the configuration is a bit confusing for me. Has anyone yet made a working config using this new format?