-
Notifications
You must be signed in to change notification settings - Fork 1
Lumberjack Design Inputs Creation #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
40a2f23
49d6b9e
67babc0
7a86584
24773be
d577b79
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # Normalize line endings for text files; binaries are marked explicitly below. | ||
| * text=auto | ||
|
|
||
| # --- LabVIEW source files --- | ||
| # These are binary, or XML that must NOT be auto-merged (git merges corrupt | ||
| # them). Use NI LVCompare / LVMerge to diff and merge visually. | ||
| *.vi binary | ||
| *.vit binary | ||
| *.vim binary | ||
| *.ctl binary | ||
| *.ctt binary | ||
| *.llb binary | ||
| *.lvclass binary | ||
| *.lvlib binary | ||
| *.lvproj binary | ||
| *.lvlibp binary | ||
| *.mnu binary | ||
|
|
||
| # --- Documentation and diagram artifacts --- | ||
| *.docx binary | ||
| *.pdf binary | ||
| *.png binary | ||
|
|
||
| # --- Text sources --- | ||
| *.md text eol=lf | ||
| *.json text eol=lf |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,17 +1,22 @@ | ||
| # Libraries | ||
| *.lvlibp | ||
| *.llb | ||
| # --- LabVIEW --- | ||
| # Object cache and per-user settings (regenerable) | ||
| .cache/ | ||
| *.aliases | ||
| *.lvlps | ||
|
|
||
| # Shared objects (inc. Windows DLLs) | ||
| *.dll | ||
| *.so | ||
| *.so.* | ||
| *.dylib | ||
| # --- Build outputs (regenerable, not committed) --- | ||
| /builds/ | ||
| *.lvlibp # Packed Project Library (output of Build PPL) | ||
| *.vip # VI Package (output of Package) | ||
|
|
||
| # Executables | ||
| *.exe | ||
| # --- OS / editor cruft --- | ||
| .DS_Store | ||
| Thumbs.db | ||
| desktop.ini | ||
| *~ | ||
| *.tmp | ||
|
|
||
| # Metadata | ||
| *.aliases | ||
| *.lvlps | ||
| .cache/ | ||
| # --- Rendered docs are artifacts of the Markdown sources --- | ||
| # Uncomment if you prefer to regenerate rather than commit them: | ||
| # docs/*.docx | ||
| # docs/*.pdf |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,82 @@ | ||
| # Lumberjack | ||
|
|
||
| An Actor Framework logging library for LabVIEW: a log4j-style logger with | ||
| severity levels, pluggable appenders, per-appender filtering and routing, and | ||
| non-blocking asynchronous delivery. It is a redesign of the earlier | ||
| singleton "Logger" library on top of the NI Actor Framework. | ||
|
|
||
| **Status:** design complete; implementation in progress (see the build checklist). | ||
|
|
||
| ## Requirements | ||
|
|
||
| - LabVIEW 2014 or newer (native JSON and the Actor Framework). | ||
| - NI Actor Framework (the only runtime dependency). | ||
| - Caraya, for the test suite only (not required at runtime). | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would it be possible to change "Caraya" to a link?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you mean include a URL such as (https://www.jki.net/caraya)?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe this one: https://www.vipm.io/package/jki_lib_caraya/ |
||
|
|
||
| ## What it does | ||
|
|
||
| - Six severity levels (Fatal, Error, Warn, Info, Debug, Trace) with a global | ||
| threshold and per-appender thresholds. | ||
| - Appenders are independent actors: file (rolling, retained), console, and a | ||
| relay that hands statements back to your application. | ||
| - Two-stage filtering: a coarse global gate on the caller side, then an | ||
| authoritative per-appender threshold and selection filter (mirror, or routed | ||
| by level range and hierarchical source tag). | ||
| - Non-blocking delivery with optional bounded queues and drop policies. | ||
| - Singleton by default (log from anywhere with no handle) with an optional | ||
| instance API. | ||
|
|
||
| ## Quick start | ||
|
|
||
| Singleton style, three nodes: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Once there is some implementation, a VI snippet/PNG for the Quick Start would be good.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adding a @todo in the documentation so I don't forget.. |
||
|
|
||
| 1. `Initialize` at application start. | ||
| 2. `Info`, `Error`, etc. anywhere, with a message string. No handle needed. | ||
| 3. `Shutdown` at exit to flush and close. | ||
|
|
||
| See the API and Usage Guide for configuration, appenders, routing, and the | ||
| instance API. | ||
|
|
||
| ## Repository layout | ||
|
|
||
| ``` | ||
| src/ the Lumberjack.lvlib and all classes, types, and support VIs | ||
| docs/ specification and guides (Markdown source; .docx are rendered) | ||
| examples/ runnable usage examples | ||
| tests/ Caraya unit and integration tests | ||
| Scripts/ build, package, and test runners | ||
|
volks73 marked this conversation as resolved.
Outdated
|
||
| configs/ VI Package build spec | ||
| ``` | ||
|
|
||
| The full layout, element-to-path mapping, and packaging notes are in the | ||
| Design Document, section 8. | ||
|
|
||
| ## Documentation | ||
|
|
||
| Markdown is the source of truth; the `.docx` files are rendered from it. | ||
|
|
||
| - Requirements: [`docs/Lumberjack-Requirements.md`](docs/Lumberjack-Requirements.md) | ||
| - Design: [`docs/Lumberjack-Design.md`](docs/Lumberjack-Design.md) | ||
| - API and usage: [`docs/Lumberjack-API-Guide.md`](docs/Lumberjack-API-Guide.md) | ||
| - Message and class reference: [`docs/Lumberjack-Class-Reference.md`](docs/Lumberjack-Class-Reference.md) | ||
| - Test strategy: [`docs/Lumberjack-Test-Strategy.md`](docs/Lumberjack-Test-Strategy.md) | ||
| - Build checklist: [`docs/Lumberjack-Build-Checklist.md`](docs/Lumberjack-Build-Checklist.md) | ||
|
|
||
| ## Building and testing | ||
|
|
||
| - Build the packed library with `Scripts/Build PPL.vi`, the VI Package with | ||
|
volks73 marked this conversation as resolved.
Outdated
|
||
| `Scripts/Package.vi`, and a source distribution with `Scripts/Build.vi`. | ||
| - Run the test suite with `Scripts/Test.vi` (Caraya). Unit tests cover the pure | ||
| VIs; integration tests use a relay-queue capture probe. | ||
|
|
||
| ## Working with the source in git | ||
|
|
||
| LabVIEW files are marked binary in `.gitattributes` because git cannot safely | ||
| merge them. Use NI **LVCompare** and **LVMerge** to diff and merge VIs and | ||
| classes visually. Build outputs (`.lvlibp`, `.vip`) and LabVIEW caches are | ||
| ignored; see `.gitignore`. | ||
|
|
||
| ## License | ||
|
|
||
| 3-clause BSD. See [`docs/LICENSE.txt`](docs/LICENSE.txt). Change history is in | ||
| [`docs/CHANGELOG.md`](docs/CHANGELOG.md). | ||
|
volks73 marked this conversation as resolved.
Outdated
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a specific NI package or VIP for the NI Actor Framework? I thought it was just an organization of LabVIEW classes, libraries, and projects.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NI Actor Framework ships with every version of LabVIEW, so it should be covered by the LabVIEW dependency in the line above. I can clarify the documentation to indicate as much.