Title Extract Logs from REST
Extracts logs from ArcGIS Server.
By default, all logs are extracted. This can be a time intensive process, so consider filtering by time and/or service name.
When you have access to the directory with the ArcGIS Server logs, it is typically faster to use ExtractFileLogs.
License
Standard
ExtractRESTLogs (site, folder, {from_date}, {to_date}, {log_level}, {log_codes}, {process_ids}, {request_ids}, {components}, {services}, {machines})
Parameter | Explanation | Data Type |
---|---|---|
site |
Dialog Reference
The ArcGIS Server site to query. |
GPString |
folder |
Dialog Reference
The location to save the output. |
DEFolder |
from_date (Optional) |
Dialog Reference
The oldest time to include in the result set. If not specified, then all logs will be returned. |
GPDate |
to_date (Optional) |
Dialog Reference
The most recent time to query. If not specified, then the current time will be used. |
GPDate |
log_level (Optional) |
Dialog Reference
Only records with a log level at or more severe than this level are returned. If not specified, then WARNING will be used. |
GPString |
log_codes (Optional) |
Dialog Reference
Specifies the log codes assigned to server logs. If not specified, then all codes will be queried. |
GPLong |
process_ids (Optional) |
Dialog Reference
Specifies the machine process IDs to query. If not specified, then all process IDs will be queried. |
GPLong |
request_ids (Optional) |
Dialog Reference
Specifies an ID assigned to a specific server request. If not specified, then all request IDs will be queried. |
GPString |
components (Optional) |
Dialog Reference
Specifies the server components delivering the log message. If not specified, then all components will be queried. |
GPString |
services (Optional) |
Dialog Reference
Specifies whether to query all, none, or a specific service in your site. If not specified, then all services will be queried. |
GPString |
machines (Optional) |
Dialog Reference
Specifies whether to query all or a specific machine in your server site. If not specified, then all machines will be queried. |
GPString |
ExtractRESTLogs example 1 (Python window)
Extracts all the ArcGIS Server logs.
import arcpy
arcpy.udms.ExtractRESTLogs("https://acme.com/portal", "D:/data/logs")
ExtractRESTLogs example 2 (stand-alone script)
Extracts ArcGIS Server logs for a specific time period.
import datetime
import os
import arcpy
# The active portal connection will be used for log querying.
arcpy.SignInToPortal("https://acme.com/portal")
folder = "D:/data/logs"
# Yesterday's logs from 8 AM - 6 PM.
yesterday = datetime.date.today() - datetime.timedelta(days=1)
start = datetime.datetime.combine(yesterday, datetime.time(hour=8))
end = datetime.datetime.combine(yesterday, datetime.time(hour=18))
# Passing no filter is the same as passing everything.
result = arcpy.udms.ExtractRESTLogs(
site=None,
folder=folder,
from_date=start,
to_date=end,
log_level="FINE",
log_codes=[],
process_ids=[],
request_ids=[],
components=[],
services=[],
machines=[],
)
logs = os.path.join(result[0], "logs")
count = arcpy.GetCount_management(logs)[0]
print(f"Extracted {int(count):,} log entries")