journald-native 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +15 -13
- data/ext/journald_native/journald_native.c +8 -4
- data/lib/journald/native/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40cc80f310e9a40ca958130fae646a2498d50876
|
4
|
+
data.tar.gz: 742cc24381ddf5eaddba2baf430ef332f6030a2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a0254aae671f1b71835ccb8ae0a22fed7827ad195643f1192dc930587b2c906723ecc2254d9c7fb59229a39ba8566b5039dbe1c04a6349e34170ec602109936
|
7
|
+
data.tar.gz: 3eaf04c61e3a201c86a430c03abed4da16ec7daccfc9c6d90e9b0c22ce1fbee34ba3c2d3d4758f4f23762eeaa93b6fb0d21b4e655f8fe7b11f289569c36b8b81
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
# journald-native
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/journald-native)
|
4
|
+
|
3
5
|
A systemd-journal native logging lib wrapper.
|
4
6
|
[See sd-journal help for more info](http://www.freedesktop.org/software/systemd/man/sd_journal_print.html)
|
5
7
|
|
6
8
|
## Usage
|
7
9
|
|
8
10
|
```ruby
|
9
|
-
|
11
|
+
require 'journald/native'
|
10
12
|
```
|
11
13
|
|
12
14
|
### Constants
|
@@ -16,14 +18,14 @@ Constants are used to denote a log level
|
|
16
18
|
Available constants:
|
17
19
|
|
18
20
|
```ruby
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
Journald::LOG_EMERG # system is unusable
|
22
|
+
Journald::LOG_ALERT # action must be taken immediately
|
23
|
+
Journald::LOG_CRIT # critical conditions
|
24
|
+
Journald::LOG_ERR # error conditions
|
25
|
+
Journald::LOG_WARNING # warning conditions
|
26
|
+
Journald::LOG_NOTICE # normal but significant condition
|
27
|
+
Journald::LOG_INFO # informational
|
28
|
+
Journald::LOG_DEBUG # debug-level messages
|
27
29
|
```
|
28
30
|
|
29
31
|
systemd-journal uses syslog constants to denote level therefore they are equal to those of the Syslog module,
|
@@ -36,14 +38,14 @@ Methods of Journald::Native class wrap systemd-journal calls.
|
|
36
38
|
[See sd-journal help for more info](http://www.freedesktop.org/software/systemd/man/sd_journal_print.html)
|
37
39
|
|
38
40
|
```ruby
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
Journald::Native.send "MESSAGE=message", "PRIORITY=#{Journald::LOG_WARNING}"
|
42
|
+
Journald::Native.print Journald::LOG_WARNING, "message"
|
43
|
+
Journald::Native.perror "message"
|
42
44
|
```
|
43
45
|
|
44
46
|
It is not recommended to use ```print``` and ```perror``` as you may lose ```'\0'``` byte in your string due to
|
45
47
|
C zero-terminated string format (all zero bytes in the middle will be removed) On the contrary ```send``` uses
|
46
|
-
binary buffers and does not have
|
48
|
+
binary buffers and does not have this shortcoming.
|
47
49
|
|
48
50
|
### License
|
49
51
|
|
@@ -51,7 +51,7 @@ static void jdl_init_constants()
|
|
51
51
|
static void jdl_init_methods()
|
52
52
|
{
|
53
53
|
rb_define_singleton_method(mNative, "print", jdl_native_print, 2);
|
54
|
-
rb_define_singleton_method(mNative, "send", jdl_native_send, -1);
|
54
|
+
rb_define_singleton_method(mNative, "send", jdl_native_send, -1); /* -1 to pass as C array */
|
55
55
|
rb_define_singleton_method(mNative, "perror", jdl_native_perror, 1);
|
56
56
|
}
|
57
57
|
|
@@ -72,16 +72,20 @@ static VALUE jdl_native_print(VALUE v_self, VALUE v_priority, VALUE v_message)
|
|
72
72
|
|
73
73
|
static VALUE jdl_native_send(int argc, VALUE* argv, VALUE self)
|
74
74
|
{
|
75
|
-
//const char * fmt = "%s";
|
76
75
|
struct iovec *msgs;
|
77
76
|
size_t i;
|
78
77
|
int result;
|
79
78
|
|
79
|
+
/* first check everything is a string / convertable to string */
|
80
|
+
for (i = 0; i < argc; i++) {
|
81
|
+
StringValue(argv[i]); /* you may get a ruby exception here */
|
82
|
+
}
|
83
|
+
|
84
|
+
/* allocate memory after all checks to avoid possible memory leak */
|
80
85
|
msgs = calloc(argc, sizeof(struct iovec));
|
81
86
|
|
82
87
|
for (i = 0; i < argc; i++) {
|
83
88
|
VALUE v = argv[i];
|
84
|
-
StringValue(v);
|
85
89
|
msgs[i].iov_base = RSTRING_PTR(v);
|
86
90
|
msgs[i].iov_len = RSTRING_LEN(v);
|
87
91
|
}
|
@@ -119,7 +123,7 @@ static char * jdl_alloc_safe_string(VALUE v_string)
|
|
119
123
|
*ptr;
|
120
124
|
size_t i;
|
121
125
|
|
122
|
-
/* convert
|
126
|
+
/* convert to string */
|
123
127
|
StringValue(v_string);
|
124
128
|
|
125
129
|
str = RSTRING_PTR(v_string);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: journald-native
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Smirnov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|