Skip to content

Commit bcfc9e9

Browse files
committed
fix logging issue
1 parent 79c9f20 commit bcfc9e9

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed

main_LargeVM.py

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from androguard.core.bytecodes import dvm
1616
from androguard.core.analysis.analysis import *
1717

18-
from multiprocessing import Pool
18+
from multiprocessing import Pool, get_logger
1919

2020
def handler (signum, sigframe):
2121
raise Exception ("Killed");
@@ -50,9 +50,12 @@ def analyze((apkEntry, OUT)):
5050
SearchIntents.Intents(filename, outfile_links, packages, dbMgr, fileName, a, d, dx);
5151
dbMgr.androidAppDB.apkInfo.update({'packageName':apkEntry['packageName']}, {'$set': {'isApkUpdated': False}})
5252
return apkEntry['packageName']
53-
except Exception as e:
54-
e.args = [apkEntry['packageName']]
55-
raise e
53+
except:
54+
logger.error("\n")
55+
logger.error("=======================================================================")
56+
logger.error("\n")
57+
logger.exception("Main : Exception occured for " + apkEntry['packageName'])
58+
return ""
5659

5760
if __name__ == '__main__':
5861
OUT = sys.argv[1]
@@ -68,35 +71,24 @@ def analyze((apkEntry, OUT)):
6871
dbMgr.insertPermissionInfo('testpackage', 'testfilename', 'testpermission', True, 'testdest', 'testexternalpackagename', 'testsrc')
6972
dbMgr.insertLinkInfo('testpackage', 'testfilename', 'testlink', True, 'testdest', 'testexternalpackagename')
7073
'''
71-
# Make a global logging object.
72-
logObject = logging.getLogger("logfile")
73-
logObject.setLevel(logging.DEBUG)
74-
# create file handler which logs even debug messages
74+
logger = get_logger()
7575
logFileHandler = logging.FileHandler(OUT + '/exceptions.log')
76-
logFileHandler.setLevel(logging.DEBUG)
7776
logFormat = logging.Formatter("%(levelname)s %(asctime)s %(funcName)s %(lineno)d %(message)s")
77+
logFileHandler.setLevel(logging.DEBUG)
7878
logFileHandler.setFormatter(logFormat)
79-
logObject.addHandler(logFileHandler)
79+
logger.addHandler(logFileHandler)
8080

8181

82-
try:
83-
apkList = list(dbMgr.androidAppDB.apkInfo.find({'isApkUpdated':True},{"fileDir":1, 'packageName':1}))
84-
apkList = [(entry, OUT, logObject) for entry in apkList]
85-
#apkList = [({'packageName': line.rstrip('\n').replace(".apk",''), 'fileDir': '../downloads/'}, OUT) for line in open("apkList").readlines()]
86-
numberOfProcess = 4
87-
pool = Pool(numberOfProcess)
88-
for packageName in pool.imap(analyze, apkList):
82+
apkList = list(dbMgr.androidAppDB.apkInfo.find({'isApkUpdated':True},{"fileDir":1, 'packageName':1}))
83+
apkList = [(entry, OUT, logObject) for entry in apkList]
84+
#apkList = [({'packageName': line.rstrip('\n').replace(".apk",''), 'fileDir': '../downloads/'}, OUT) for line in open("apkList").readlines()]
85+
numberOfProcess = 4
86+
pool = Pool(numberOfProcess)
87+
for packageName in pool.imap(analyze, apkList):
88+
if packageName != "":
8989
analyzedApkFile.write(packageName + '\n')
90+
analyzedApkFile.flush()
9091

91-
except Exception as e:
92-
packageName = ''
93-
if len(e.args) > 1:
94-
packageName = e.args[0]
95-
96-
logObject.error("\n")
97-
logObject.error("=======================================================================")
98-
logObject.error("\n")
99-
logObject.exception("Main : Exception occured for " + packageName)
10092

10193

10294

0 commit comments

Comments
 (0)