{"id":23119391,"url":"https://github.com/xinlin-z/tklog","last_synced_at":"2025-09-11T02:09:11.132Z","repository":{"id":108807979,"uuid":"210521202","full_name":"xinlin-z/tklog","owner":"xinlin-z","description":"Log widget based on tkinter, GUI tee (tkee) command","archived":false,"fork":false,"pushed_at":"2023-07-29T13:40:18.000Z","size":1108,"stargazers_count":19,"open_issues_count":5,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-17T00:32:46.850Z","etag":null,"topics":["gui","logger","logging","logging-handler","python","scrolledtext-widget","tee","tkinter","winlog"],"latest_commit_sha":null,"homepage":"","language":"Python","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/xinlin-z.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,"zenodo":null}},"created_at":"2019-09-24T05:45:15.000Z","updated_at":"2024-04-04T13:19:28.000Z","dependencies_parsed_at":"2025-08-17T00:31:52.634Z","dependency_job_id":"5eb5688c-d617-4559-8b2e-0168505e7357","html_url":"https://github.com/xinlin-z/tklog","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/xinlin-z/tklog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xinlin-z%2Ftklog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xinlin-z%2Ftklog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xinlin-z%2Ftklog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xinlin-z%2Ftklog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xinlin-z","download_url":"https://codeload.github.com/xinlin-z/tklog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xinlin-z%2Ftklog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274564220,"owners_count":25308549,"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-09-11T02:00:13.660Z","response_time":74,"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":["gui","logger","logging","logging-handler","python","scrolledtext-widget","tee","tkinter","winlog"],"created_at":"2024-12-17T05:34:16.952Z","updated_at":"2025-09-11T02:09:11.127Z","avatar_url":"https://github.com/xinlin-z.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Log is just like a cup of coffee, and I like it anytime! :)\n\n* [tklog](#tklog)\n* [winlog](#winlog)\n* [sample test code](#sample-test-code)\n* [tkee](#tkee)\n\n# tklog\n\n**tklog:** a thread-safe log widget based on tkinter\n(inherited from ScrolledText).\n\nIt can be packed into root or Toplevel window easily, and has a\nlittle power to log pictures (png and gif).\n\nThe log interfaces all have an argument named sync from V0.12,\ndefault is False. You should be very careful about this argument,\nyou can never use it in GUI event loop. Normally, `sync=True`\nshould only be set in background thread which needs synchronization.\nFor example, you want to make sure the log interface\nwould be blocked until after the log info is shown on text window.\n\n# winlog\n\n**winlog:** a toplevel log window based on tklog, which creats a\nToplevel window, contains a tklog widget, and has the ability to\nwithdraw or destroy root.\n\n# sample test code\n\nRead the sample test code, and you'll learn how to use tklog and\nwinlog. And you can also run the sample test code:\n\n```python\n$ python test_tklog.py tklog\n$ python test_tklog.py winlog\n```\n\nDon't forget to try **right click** on the logging area. Maybe\nthere's a surprise for you.\n\nBelow is a screenshot for winlog:\n\n![winlog.png](/winlog.png)\n\n# tkee\n\nIt's a GUI tee! Tee store output into a file,\ntkee show them in winlog! Try it:\n\n```python\n$ cat tklog.py | python tkee.py\n$ ping bing.com | python tkee.py\n```\n\nHave fun! ^____^\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxinlin-z%2Ftklog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxinlin-z%2Ftklog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxinlin-z%2Ftklog/lists"}