{"id":22119593,"url":"https://github.com/pleiszenburg/loggedfs-python","last_synced_at":"2025-07-07T03:08:59.633Z","repository":{"id":62576674,"uuid":"113670055","full_name":"pleiszenburg/loggedfs-python","owner":"pleiszenburg","description":"Filesystem monitoring with Fuse and Python","archived":false,"fork":false,"pushed_at":"2023-03-31T02:14:20.000Z","size":820,"stargazers_count":29,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-15T06:48:29.477Z","etag":null,"topics":["filesystem","filesystem-logging","filesystemwatcher","fuse","fuse-filesystem","logging","monitoring"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pleiszenburg.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-09T13:07:44.000Z","updated_at":"2024-09-16T16:47:33.000Z","dependencies_parsed_at":"2022-11-03T19:06:33.128Z","dependency_job_id":null,"html_url":"https://github.com/pleiszenburg/loggedfs-python","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/pleiszenburg/loggedfs-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleiszenburg%2Floggedfs-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleiszenburg%2Floggedfs-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleiszenburg%2Floggedfs-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleiszenburg%2Floggedfs-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pleiszenburg","download_url":"https://codeload.github.com/pleiszenburg/loggedfs-python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleiszenburg%2Floggedfs-python/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264005172,"owners_count":23542829,"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","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":["filesystem","filesystem-logging","filesystemwatcher","fuse","fuse-filesystem","logging","monitoring"],"created_at":"2024-12-01T14:15:59.048Z","updated_at":"2025-07-07T03:08:59.603Z","avatar_url":"https://github.com/pleiszenburg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. |build_master| image:: https://img.shields.io/travis/pleiszenburg/loggedfs-python/master.svg?style=flat-square\n\t:target: https://travis-ci.org/pleiszenburg/loggedfs-python\n\t:alt: Build Status: master / release\n\n.. |build_develop| image:: https://img.shields.io/travis/pleiszenburg/loggedfs-python/develop.svg?style=flat-square\n\t:target: https://travis-ci.org/pleiszenburg/loggedfs-python\n\t:alt: Build Status: development branch\n\n.. |license| image:: https://img.shields.io/pypi/l/loggedfs.svg?style=flat-square\n\t:target: https://github.com/pleiszenburg/loggedfs/blob/master/LICENSE\n\t:alt: Project License: Apache License v2\n\n.. |status| image:: https://img.shields.io/pypi/status/loggedfs.svg?style=flat-square\n\t:target: https://github.com/pleiszenburg/loggedfs-python/milestone/1\n\t:alt: Project Development Status\n\n.. |pypi_version| image:: https://img.shields.io/pypi/v/loggedfs.svg?style=flat-square\n\t:target: https://pypi.python.org/pypi/loggedfs\n\t:alt: Available on PyPi - the Python Package Index\n\n.. |pypi_versions| image:: https://img.shields.io/pypi/pyversions/loggedfs.svg?style=flat-square\n\t:target: https://pypi.python.org/pypi/loggedfs\n\t:alt: Available on PyPi - the Python Package Index\n\n.. |loggedfs_python_logo| image:: http://www.pleiszenburg.de/loggedfs-python_logo.png\n\t:target: https://github.com/pleiszenburg/loggedfs-python\n\t:alt: LoggedFS-python repository\n\n|build_master| |build_develop| |license| |status| |pypi_version| |pypi_versions|\n\n|loggedfs_python_logo|\n\nSynopsis\n========\n\nLoggedFS-python is a FUSE-based filesystem which can log every operation that happens in it.\nIt is a pure Python re-implementation of `LoggedFS`_ by `Rémi Flament`_ maintaining CLI compatibility.\nThe project is heavily inspired by `Stavros Korokithakis`_' 2013 blog post entitled\n\"`Writing a FUSE filesystem in Python`_\" (`source code repository`_).\nThe filesystem is fully `POSIX`_ compliant, passing the `pjdfstest test-suite`_, a descendant of FreeBSD's `fstest`_.\nIt furthermore passes stress tests with fsx-linux based on the `fsx-flavor`_  released by the `Linux Test Project`_.\nIt is intended to be suitable for production systems.\n\n.. _LoggedFS: https://github.com/rflament/loggedfs\n.. _Rémi Flament: https://github.com/rflament\n.. _Stavros Korokithakis: https://github.com/skorokithakis\n.. _Writing a FUSE filesystem in Python: https://www.stavros.io/posts/python-fuse-filesystem/\n.. _source code repository: https://github.com/skorokithakis/python-fuse-sample\n.. _POSIX: https://en.wikipedia.org/wiki/POSIX\n.. _pjdfstest test-suite: https://github.com/pjd/pjdfstest\n.. _fstest: https://github.com/zfsonlinux/fstest\n.. _fsx-flavor: http://codemonkey.org.uk/projects/fsx/\n.. _Linux Test Project: https://github.com/linux-test-project/ltp\n\n\nCAVEATS\n=======\n\n* PROJECT STATUS: **BETA**\n* THE FILESYSTEM IS CURRENTLY **ONLY** BEING DEVELOPED FOR AND TESTED ON **LINUX**.\n  ANYONE INTERESTED IN CONFIRMING MAC OS X AND/OR ADDING BSD SUPPORT?\n\n\nInstallation\n============\n\nFrom the `Python Package Index`_ (PyPI):\n\n.. code:: bash\n\n\tpip install loggedfs\n\nFrom GitHub:\n\n.. code:: bash\n\n\tpip install git+https://github.com/pleiszenburg/loggedfs-python.git@master\n\n**Supports Python 3.{5,6,7,8}.**\n\n**Supports Linux.**\nSupport for MAC OS X and BSD is implemented but has yet not been tested.\n\n.. _Python Package Index: https://pypi.org/\n\n\nSimple usage example\n====================\n\nTo start recording access to ``/tmp/TEST`` into ``/root/log.txt``, just do:\n\n.. code:: bash\n\n\tsudo loggedfs -p -s -l /root/log.txt /tmp/TEST\n\nTo stop recording, just unmount as usual:\n\n.. code:: bash\n\n\tsudo fusermount -u /tmp/TEST\n\n\nCLI usage\n=========\n\n.. code:: bash\n\n\tloggedfs --help\n\tUsage: loggedfs [OPTIONS] DIRECTORY\n\n\tOptions:\n\t  -f                            Do not start as a daemon. Write logs to stdout\n\t                                if no log file is specified.\n\n\t  -p                            Allow every user to see the new loggedfs.\n\t  -c FILENAME                   Use the \"config-file\" to filter what you want\n\t                                to log.\n\n\t  -s                            Deactivate logging to syslog.\n\t  -l FILE                       Use the \"log-file\" to write logs to.\n\t  -j, --json                    Format output as JSON instead of traditional\n\t                                loggedfs format.\n\n\t  -b, --buffers                 Include read/write-buffers (compressed,\n\t                                BASE64) in log.\n\n\t  -m, --only-modify-operations  Exclude logging of all operations that can not\n\t                                cause changes in the filesystem. Convenience\n\t                                flag for accelerated logging.\n\n\t  --help                        Show this message and exit.\n\n\nConfiguration\n=============\n\nLoggedFS-python can use an XML configuration file if you want it to log operations only for certain files, for certain users, or for certain operations. LoggedFS-python is fully compatible with configuration files in LoggedFS' original format. Yet it can also handle additional fields (e.g. the ``command`` field).\n\nHere is a sample configuration file :\n\n.. code:: xml\n\n\t\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\n\t\u003cloggedFS logEnabled=\"true\" printProcessName=\"true\"\u003e\n\t\t\u003cincludes\u003e\n\t\t\t\u003cinclude extension=\".*\" uid=\"*\" action=\".*\" retname=\".*\" command=\".*\"/\u003e\n\t\t\u003c/includes\u003e\n\t\t\u003cexcludes\u003e\n\t\t\t\u003cexclude extension=\".*\\.bak$\" uid=\"*\" action=\".*\" retname=\"SUCCESS\" command=\".*\"/\u003e\n\t\t\t\u003cexclude extension=\".*\" uid=\"1000\" action=\".*\" retname=\"FAILURE\" command=\".*\"/\u003e\n\t\t\t\u003cexclude extension=\".*\" uid=\"*\" action=\"getattr\" retname=\".*\" command=\".*\"/\u003e\n\t\t\u003c/excludes\u003e\n\t\u003c/loggedFS\u003e\n\nThis configuration can be used to log everything except if it concerns a\n``*.bak`` file, or if the ``uid`` is 1000, or if the operation is ``getattr``.\n\n\nNeed help?\n==========\n\nFeel free to post questions in the `GitHub issue tracker`_ of this project.\n\n.. _GitHub issue tracker: https://github.com/pleiszenburg/loggedfs-python/issues\n\n\nBugs \u0026 issues\n=============\n\nPlease report bugs in LoggedFS-python here in its `GitHub issue tracker`_.\n\n\nMiscellaneous\n=============\n\n- Library documentation: `LoggedFS-python Jupyter Notebook`_\n- `License`_ (**Apache License 2.0**)\n- `Contributing`_ (**Contributions are highly welcomed!**)\n- `Authors`_\n- `Changes`_\n- `Long-term ideas`_\n- `Upstream issues`_ (relevant bugs in dependencies)\n\n.. _LoggedFS-python Jupyter Notebook: https://github.com/pleiszenburg/loggedfs-python/blob/master/docs/library_demo.ipynb\n.. _License: https://github.com/pleiszenburg/loggedfs-python/blob/master/LICENSE\n.. _Contributing: https://github.com/pleiszenburg/loggedfs-python/blob/master/CONTRIBUTING.rst\n.. _Authors: https://github.com/pleiszenburg/loggedfs-python/blob/master/AUTHORS.rst\n.. _Changes: https://github.com/pleiszenburg/loggedfs-python/blob/master/CHANGES.rst\n.. _Long-term ideas: https://github.com/pleiszenburg/loggedfs-python/milestone/2\n.. _Upstream issues: https://github.com/pleiszenburg/loggedfs-python/issues?q=is%3Aissue+is%3Aopen+label%3Aupstream\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpleiszenburg%2Floggedfs-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpleiszenburg%2Floggedfs-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpleiszenburg%2Floggedfs-python/lists"}