{"id":18801184,"url":"https://github.com/logpai/autolog","last_synced_at":"2025-10-11T02:06:43.816Z","repository":{"id":188865859,"uuid":"679577068","full_name":"logpai/AutoLog","owner":"logpai","description":"AutoLog: A Log Sequence Synthesis Framework for Anomaly Detection [ASE'23]","archived":false,"fork":false,"pushed_at":"2024-02-20T11:50:04.000Z","size":77521,"stargazers_count":37,"open_issues_count":1,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-20T18:23:38.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/logpai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-17T06:41:37.000Z","updated_at":"2025-01-09T02:39:33.000Z","dependencies_parsed_at":"2024-11-07T22:36:05.926Z","dependency_job_id":null,"html_url":"https://github.com/logpai/AutoLog","commit_stats":null,"previous_names":["logpai/autolog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/logpai/AutoLog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logpai%2FAutoLog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logpai%2FAutoLog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logpai%2FAutoLog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logpai%2FAutoLog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logpai","download_url":"https://codeload.github.com/logpai/AutoLog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logpai%2FAutoLog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005911,"owners_count":26083994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T22:22:42.987Z","updated_at":"2025-10-11T02:06:43.798Z","avatar_url":"https://github.com/logpai.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoLog\nCollect \u0026amp; Analyze application log sequence from the perspective of program analysis\n![1663063757857](image/README/1663063757857.png)\n\nThe repository consists of multiple folders. The folder `/src` includes source code. The folder `/data` contains the generated demo data from AutoLog. The folder `/scripts` contain some useful scripts. The folder `/third-party` includes two open-source program analysis tools we adpated in this project. The folder `/build` contains some builded artifacts.\n\n### Generated Datasets\n\nThe demo datasets are shown in the **folder `/data`**.\n\n**Sample:**\n\n```json\n{\"9E4C996176B68B9A5F521819A453BB91\": {\"templates\": [......, \n\"Resolved path is  \u003c*\u003e \",\n \"ACCESS CHECK:  this , doCheckOwner= \u003c*\u003e , ancestorAccess= \u003c*\u003e , parentAccess= \u003c*\u003e , access= \u003c*\u003e , subAccess= \u003c*\u003e , ignoreEmptyDir= \u003c*\u003e , resolveLink= \u003c*\u003e \",\n\"UnresolvedPathException  path:  \u003c*\u003e  preceding:  \u003c*\u003e count:  \u003c*\u003e  link:  \u003c*\u003e  target:  \u003c*\u003e  remainder:  \u003c*\u003e \",\n\"Could not get full path. Corresponding file might have deleted already.\",\n\"Could not get full path. Corresponding file might have deleted already.\"\n], \"label\": 1}\n```\n\n**Sample raw data:**\n\n```html\nINFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: HA Enabled:  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Append Enabled:  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.FSDirectory: Caching file names occuring more than  \u003c*\u003e  times \nINFO org.apache.hadoop.hdfs.server.namenode.CacheManager: Using minimum value \u003c*\u003e for \u003c*\u003e\nWARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo: The threshold value should not be greater than , threshold:  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo: dfs.namenode.safemode.threshold-pct =  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo: dfs.namenode.safemode.min.datanodes =  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo: dfs.namenode.safemode.extension     =  \u003c*\u003e \nINFO org.apache.hadoop.hdfs.server.namenode.NNConf: ACLs enabled?  \u003c*\u003e \n```\n\n### Execution\n\nYou can play with this analysis framework with multiple ways.\n\n* `LogStatGen.jar`: fetch and restore log statements from analyzed artifacts for preliminary labelling.\n* `LogEPGen.jar`: acquire log-related execution paths.\n* `javacg.jar`: generate call graph from java project.\n* `log_methods_generator.py`: a simple way to generate pruned call graphs.\n* `log_sequence_generator.py`: log path walking.\n\n\nInstruction for getting project logging statements, you can conduct statement-level labelling for further anomaly detection.\n```bash\njava -jar LogStatGen.jar -j input_jar.jar -o log_methods.txt -m 'log'\n```\n\nInstruction for running the callgraph generators\n\n```bash\njava -jar javacg-0.1-SNAPSHOT-static.jar lib1.jar ... \u003e cg.txt\n```\n\nInstruction for pruning log-related call graphs\n\n```bash\npython generate_log_methods.py --cg cg.txt --output log_methods.csv --matcher 'log'\n```\n\nInstruction for getting logEP for log-related methods, , you can conduct path-level labelling for further anomaly detection.\n\n```bash\njava -jar LogEPGen.jar -j input_jar.jar -l log_methods.txt -o log_file.json\n```\n\nInstruction for the generated log sequences (without labelling):\n```bash\npython log_sequence_generator.py --call-graph-file cg.txt --log-file log_file.json --label-file log_methods.csv --output-path gen_log.txt --length 1000000\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogpai%2Fautolog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogpai%2Fautolog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogpai%2Fautolog/lists"}