Sample for the FluentLogger library.
Dependencies: EthernetInterface FluentLogger mbed-rtos mbed
Example for simple message logging.
main.cpp
#include "mbed.h" #include "rtos.h" #include "EthernetInterface.h" #include "FluentLogger.h" EthernetInterface eth; FluentLogger logger("192.168.0.1"); // please set your Fluentd server int main() { eth.init(); //Use DHCP eth.connect(); while(1) { logger.log("debug.mbed", "Hello mbed"); //message body is simple string wait_ms(10000); } logger.close(); eth.disconnect(); }
Server Configuration
Fluentd daemon must be lauched with the following configuration:
<source> type tcp port 24224 </source> <match debug.**> type stdout </match>
main.cpp@1:4c31b3159209, 2014-12-15 (annotated)
- Committer:
- YuuichiAkagawa
- Date:
- Mon Dec 15 15:41:47 2014 +0000
- Revision:
- 1:4c31b3159209
- Parent:
- 0:160f68fca7a0
update sample
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YuuichiAkagawa | 0:160f68fca7a0 | 1 | /* FluentLogger - fluent-logger-mbed sample |
YuuichiAkagawa | 0:160f68fca7a0 | 2 | * Copyright (c) 2014 Yuuichi Akagawa |
YuuichiAkagawa | 0:160f68fca7a0 | 3 | * |
YuuichiAkagawa | 0:160f68fca7a0 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
YuuichiAkagawa | 0:160f68fca7a0 | 5 | * you may not use this file except in compliance with the License. |
YuuichiAkagawa | 0:160f68fca7a0 | 6 | * You may obtain a copy of the License at |
YuuichiAkagawa | 0:160f68fca7a0 | 7 | * |
YuuichiAkagawa | 0:160f68fca7a0 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
YuuichiAkagawa | 0:160f68fca7a0 | 9 | * |
YuuichiAkagawa | 0:160f68fca7a0 | 10 | * Unless required by applicable law or agreed to in writing, software |
YuuichiAkagawa | 0:160f68fca7a0 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
YuuichiAkagawa | 0:160f68fca7a0 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
YuuichiAkagawa | 0:160f68fca7a0 | 13 | * See the License for the specific language governing permissions and |
YuuichiAkagawa | 0:160f68fca7a0 | 14 | * limitations under the License. |
YuuichiAkagawa | 0:160f68fca7a0 | 15 | */ |
YuuichiAkagawa | 0:160f68fca7a0 | 16 | |
YuuichiAkagawa | 0:160f68fca7a0 | 17 | #include "mbed.h" |
YuuichiAkagawa | 0:160f68fca7a0 | 18 | #include "EthernetInterface.h" |
YuuichiAkagawa | 0:160f68fca7a0 | 19 | #include "FluentLogger.h" |
YuuichiAkagawa | 0:160f68fca7a0 | 20 | |
YuuichiAkagawa | 0:160f68fca7a0 | 21 | EthernetInterface eth; |
YuuichiAkagawa | 0:160f68fca7a0 | 22 | FluentLogger logger("192.168.0.1"); // please set your Fluentd server |
YuuichiAkagawa | 0:160f68fca7a0 | 23 | |
YuuichiAkagawa | 0:160f68fca7a0 | 24 | int main() |
YuuichiAkagawa | 0:160f68fca7a0 | 25 | { |
YuuichiAkagawa | 1:4c31b3159209 | 26 | eth.init(); //Use DHCP |
YuuichiAkagawa | 0:160f68fca7a0 | 27 | eth.connect(); |
YuuichiAkagawa | 1:4c31b3159209 | 28 | uMP mp(64); //Message body |
YuuichiAkagawa | 1:4c31b3159209 | 29 | |
YuuichiAkagawa | 1:4c31b3159209 | 30 | logger.open(); //connect to fluentd server (omissible) |
YuuichiAkagawa | 0:160f68fca7a0 | 31 | |
YuuichiAkagawa | 1:4c31b3159209 | 32 | //sample |
YuuichiAkagawa | 1:4c31b3159209 | 33 | //array sample with primitive functions |
YuuichiAkagawa | 1:4c31b3159209 | 34 | //YYYY-MM-DD HH:MM:SS zzzzz debug.test: ["sint",0,1,-1,-128,-32768,-2147483648] |
YuuichiAkagawa | 1:4c31b3159209 | 35 | mp.init(); // need init every time |
YuuichiAkagawa | 1:4c31b3159209 | 36 | mp.start_array(7); // declare array for seven elements. it can mixed type. |
YuuichiAkagawa | 1:4c31b3159209 | 37 | mp.set_str("sint", 4); // 1st element |
YuuichiAkagawa | 1:4c31b3159209 | 38 | mp.set_sint(0); // 2nd element |
YuuichiAkagawa | 1:4c31b3159209 | 39 | mp.set_sint(1); // 3rd element |
YuuichiAkagawa | 1:4c31b3159209 | 40 | mp.set_sint(-1); // 4th element |
YuuichiAkagawa | 1:4c31b3159209 | 41 | mp.set_sint(-128); // 5th element |
YuuichiAkagawa | 1:4c31b3159209 | 42 | mp.set_sint(-32768); // 6th element |
YuuichiAkagawa | 1:4c31b3159209 | 43 | mp.set_sint(-2147483648); // 7th element |
YuuichiAkagawa | 1:4c31b3159209 | 44 | logger.log("debug.test", mp); // emit |
YuuichiAkagawa | 0:160f68fca7a0 | 45 | |
YuuichiAkagawa | 1:4c31b3159209 | 46 | //array sample with primitive functions |
YuuichiAkagawa | 1:4c31b3159209 | 47 | //YYYY-MM-DD HH:MM:SS zzzzz debug.test: ["uint",0,1,128,255,65535,4294967295] |
YuuichiAkagawa | 1:4c31b3159209 | 48 | mp.init(); // need init every time |
YuuichiAkagawa | 1:4c31b3159209 | 49 | mp.start_array(7); // declare array for seven elements. it can mixed type. |
YuuichiAkagawa | 1:4c31b3159209 | 50 | mp.set_str("uint", 4); // 1st element |
YuuichiAkagawa | 1:4c31b3159209 | 51 | mp.set_uint(0); // 2nd element |
YuuichiAkagawa | 1:4c31b3159209 | 52 | mp.set_uint(1); // 3rd element |
YuuichiAkagawa | 1:4c31b3159209 | 53 | mp.set_uint(128); // 4th element |
YuuichiAkagawa | 1:4c31b3159209 | 54 | mp.set_uint(0xff); // 5th element |
YuuichiAkagawa | 1:4c31b3159209 | 55 | mp.set_uint(0xffff); // 6th element |
YuuichiAkagawa | 1:4c31b3159209 | 56 | mp.set_uint(0xffffffff); // 7th element |
YuuichiAkagawa | 1:4c31b3159209 | 57 | logger.log("debug.test", mp); |
YuuichiAkagawa | 0:160f68fca7a0 | 58 | |
YuuichiAkagawa | 1:4c31b3159209 | 59 | //map sample with primitive functions |
YuuichiAkagawa | 1:4c31b3159209 | 60 | //YYYY-MM-DD HH:MM:SS zzzzz debug.test: {"string":"Hi!","float":0.3333333432674408,"double":0.3333333333333333} |
YuuichiAkagawa | 1:4c31b3159209 | 61 | mp.init(); // need init every time |
YuuichiAkagawa | 1:4c31b3159209 | 62 | mp.start_map(3); // declare map for three paires. |
YuuichiAkagawa | 1:4c31b3159209 | 63 | mp.set_str("string", 6); // 1st key |
YuuichiAkagawa | 1:4c31b3159209 | 64 | mp.set_str("Hi!", 3); // 1st value |
YuuichiAkagawa | 1:4c31b3159209 | 65 | mp.set_str("float", 5); // 2nd key |
YuuichiAkagawa | 1:4c31b3159209 | 66 | mp.set_float(1.0/3); // 2nd value |
YuuichiAkagawa | 1:4c31b3159209 | 67 | mp.set_str("double", 6); // 3rd key |
YuuichiAkagawa | 1:4c31b3159209 | 68 | mp.set_double(1.0/3); // 3rd value |
YuuichiAkagawa | 1:4c31b3159209 | 69 | logger.log("debug.test", mp); // emit |
YuuichiAkagawa | 1:4c31b3159209 | 70 | |
YuuichiAkagawa | 1:4c31b3159209 | 71 | //map sample with simple method. same as prev sample (but need more CPU cycle) |
YuuichiAkagawa | 1:4c31b3159209 | 72 | //YYYY-MM-DD HH:MM:SS zzzzz debug.test: {"string":"Hi!","float":0.3333333432674408,"double":0.3333333333333333} |
YuuichiAkagawa | 1:4c31b3159209 | 73 | mp.init(); // need init every time |
YuuichiAkagawa | 1:4c31b3159209 | 74 | mp.start_map(3); // declare map for two paires. |
YuuichiAkagawa | 1:4c31b3159209 | 75 | mp.map("string", "Hi!"); // 1st key/value pair |
YuuichiAkagawa | 1:4c31b3159209 | 76 | mp.map("float", (float)(1.0/3)); // 2nd key/value pair |
YuuichiAkagawa | 1:4c31b3159209 | 77 | mp.map("double", (double)(1.0/3)); // 3rd key/value pair |
YuuichiAkagawa | 1:4c31b3159209 | 78 | logger.log("debug.mbed", mp); // emit |
YuuichiAkagawa | 0:160f68fca7a0 | 79 | |
YuuichiAkagawa | 0:160f68fca7a0 | 80 | while(1) { |
YuuichiAkagawa | 0:160f68fca7a0 | 81 | logger.log("debug.mbed", "Hello mbed"); //message body is simple string |
YuuichiAkagawa | 1:4c31b3159209 | 82 | logger.close(); //close a connection (if you want) |
YuuichiAkagawa | 0:160f68fca7a0 | 83 | wait_ms(10000); |
YuuichiAkagawa | 0:160f68fca7a0 | 84 | } |
YuuichiAkagawa | 0:160f68fca7a0 | 85 | eth.disconnect(); |
YuuichiAkagawa | 0:160f68fca7a0 | 86 | } |