Summary
Plex Media Server to log user interactions to a dedicated access log, separate from existing logs.
Motivation
Required to fix the problem that a Mac computer running Plex Media Server may go into Sleep mode while a user is browsing Plex.
By monitoring a Plex access log, an external script would be able to determine when to keep a Mac computer awake, and when to let it sleep.
See this thread: forums.plex.tv/discussion/102472/plex-server-should-keep-mac-awake-after-wake-on-lan
Versions Affected
Plex Media Server v2.8.1
MacOS v10.11.6 (El Capitan)
Details
-
The access log should be located at
~/Library/Logs/Plex Media Server/Plex Access.log -
Existing messages that are outputted, in debug logging mode, to
Plex Media Server.logthat start withRequest:should now also be written to the access log. -
However, messages that start with
Request: [127.0.0.1:##### (Loopback)]should not be written to the access log. This will exclude requests initiated by processes in the Plex server itself rather than by users. -
Access log messages should be outputted when in normal (non-debug) logging mode.
-
The access log should be rotated in the same way as the other existing log files.
Example of access log messages
Oct 09, 2016 10:08:12.072 [0x700000323000] DEBUG - Request: [192.168.1.39:60967 (Subnet)] GET / (4 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:12.115 [0x700000323000] DEBUG - Request: [192.168.1.39:60968 (Subnet)] GET / (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:12.146 [0x700000323000] DEBUG - Request: [192.168.1.39:60967 (Subnet)] GET /library/sections/ (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:40.626 [0x70000021d000] DEBUG - Request: [192.168.1.39:60995 (Subnet)] GET / (4 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:40.735 [0x70000021d000] DEBUG - Request: [192.168.1.39:60996 (Subnet)] GET / (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:40.764 [0x70000021d000] DEBUG - Request: [192.168.1.39:60995 (Subnet)] GET /library/sections/ (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:41.304 [0x70000021d000] DEBUG - Request: [192.168.1.39:60996 (Subnet)] GET /library/sections/4/onDeck (5 live) Page 0-19 GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:41.456 [0x700000187000] DEBUG - Request: [192.168.1.39:60995 (Subnet)] GET /library/sections/4/recentlyAdded (5 live) Page 0-19 GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:41.815 [0x700000187000] DEBUG - Request: [192.168.1.39:60996 (Subnet)] GET /photo/:/transcode?width=181&height=181&url=http%3A%2F%2F127.0.0.1%3A32400%2Flibrary%2Fmetadata%2F2726%2Fthumb%2F1474742739&upscale=1&format=jpg (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:42.099 [0x7000005b2000] DEBUG - Request: [192.168.1.39:60998 (Subnet)] GET /photo/:/transcode?width=181&height=181&url=http%3A%2F%2F127.0.0.1%3A32400%2Flibrary%2Fmetadata%2F1651%2Fthumb%2F1430166813&upscale=1&format=jpg (9 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:42.408 [0x700000323000] DEBUG - Request: [192.168.1.39:61000 (Subnet)] HEAD /photo/:/transcode?width=1280&height=720&url=http%3A%2F%2F127.0.0.1%3A32400%2Flibrary%2Fmetadata%2F2726%2Fart%2F1474742739&upscale=1 (9 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:08:42.416 [0x70000073b000] DEBUG - Request: [192.168.1.39:60999 (Subnet)] GET /photo/:/transcode?width=1280&height=720&url=http%3A%2F%2F127.0.0.1%3A32400%2Flibrary%2Fmetadata%2F2726%2Fart%2F1474742739&upscale=1 (9 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:51.437 [0x70000021d000] DEBUG - Request: [192.168.1.39:32770 (Subnet)] GET /library/sections/4 (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:51.637 [0x70000021d000] DEBUG - Request: [192.168.1.39:32769 (Subnet)] GET /library/sections/4/filters?type=2 (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:51.714 [0x70000021d000] DEBUG - Request: [192.168.1.39:32770 (Subnet)] GET /library/sections/4/sorts?type=2 (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:51.793 [0x70000021d000] DEBUG - Request: [192.168.1.39:32769 (Subnet)] GET /library/sections/4/firstCharacter?type=2&sort=titleSort%3Aasc (5 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:51.898 [0x70000021d000] DEBUG - Request: [192.168.1.39:32771 (Subnet)] GET /library/sections/4/all?type=2&sort=titleSort%3Aasc (6 live) Page 0-23 GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:09:52.084 [0x70000021d000] DEBUG - Request: [192.168.1.39:32770 (Subnet)] GET /library/sections/4/firstCharacter?type=2&sort=titleSort%3Aasc (6 live) GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:10:57.687 [0x700000323000] DEBUG - Request: [192.168.1.39:32776 (Subnet)] GET /library/sections/4/onDeck (4 live) Page 0-19 GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:10:57.780 [0x70000021d000] DEBUG - Request: [192.168.1.39:32777 (Subnet)] GET /library/sections/4/recentlyAdded (5 live) Page 0-19 GZIP Signed-in Token (Parnty)
Oct 09, 2016 10:11:33.039 [0x700000187000] DEBUG - Request: [192.168.1.39:32786 (Subnet)] GET /playlists (4 live) Page 0-19 GZIP Signed-in Token (Parnty)
Examples of excluded messages
Oct 08, 2016 07:22:41.967 [0x700000ad0000] DEBUG - Request: [127.0.0.1:59918 (Loopback)] GET /library/sections (3 live) GZIP Signed-in Token (Parnty)
Oct 08, 2016 07:22:41.996 [0x700000b53000] DEBUG - Request: [127.0.0.1:59919 (Loopback)] GET /channels/all (3 live) GZIP Signed-in Token (Parnty)
Oct 08, 2016 07:22:42.021 [0x700000ad0000] DEBUG - Request: [127.0.0.1:59921 (Loopback)] GET /servers (2 live) GZIP Signed-in Token (Parnty)