I did a little test with a small snippet of Python code, to print out any DENIED licenses I have in a log file. Which yields this:
feature | user | computer | denied |
"Editor" | dduquej | DDUQUEJ2 | 2 |
"ARC/INFO" | xbakker | LOLIVARE1 | 6 |
The code below.
def main():
log_file = r'D:\Xander\EPM\Licencias\LMgrd\LOLIVARE1_10.3.LOG'
with open (log_file, "r") as inp:
lines=inp.readlines()
dct = {}
for l in lines:
if 'DENIED' in l:
# 13:50:40 (ARCGIS) DENIED: "ARC/INFO" xbakker@LOLIVARE1 (Licensed number of users already reached. (-4,342))
l = l.strip()
lst = l.split(' ')
k = lst[3] + ' ' + lst[4]
if k in dct:
dct += 1
else:
dct = 1
print "feature\tuser\tcomputer\tdenied"
for k, v in dct.items():
lst = k.split(' ')
feature = lst[0]
usercomp = lst[1]
lst = usercomp.split('@')
user = lst[0]
comp = lst[1]
print '{0}\t{1}\t{2}\t{3}'.format(feature, user, comp, v)
if __name__ == '__main__':
main()
If you are currently not experiencing any denied checkouts, you will not find any records in the log file. In that case you will need to monitor the license usage and try to project future usage:
That may be a more difficult job in case you don't have any history of usage statistics yet. We monitor the license usage with a scheduled task that executes a python script that generates some text output we load and analyze in Excel as V Stuart Foote suggested initially. I think we even used part of code posted by V Stuart Foote in earlier threads for this purpose.
It allows us to register peak license use vs time of the day:
... and distribution of license levels.
Our conclusion was that generating consciousness with the users about not leaving ArcGIS sessions and extensions activated when they are not in use and about what license level to use has helped us to not buy additional licenses.