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
- Committer:
- YuuichiAkagawa
- Date:
- 2014-12-15
- Revision:
- 1:4c31b3159209
- Parent:
- 0:160f68fca7a0
File content as of revision 1:4c31b3159209:
/* FluentLogger - fluent-logger-mbed sample
* Copyright (c) 2014 Yuuichi Akagawa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "mbed.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();
uMP mp(64); //Message body
logger.open(); //connect to fluentd server (omissible)
//sample
//array sample with primitive functions
//YYYY-MM-DD HH:MM:SS zzzzz debug.test: ["sint",0,1,-1,-128,-32768,-2147483648]
mp.init(); // need init every time
mp.start_array(7); // declare array for seven elements. it can mixed type.
mp.set_str("sint", 4); // 1st element
mp.set_sint(0); // 2nd element
mp.set_sint(1); // 3rd element
mp.set_sint(-1); // 4th element
mp.set_sint(-128); // 5th element
mp.set_sint(-32768); // 6th element
mp.set_sint(-2147483648); // 7th element
logger.log("debug.test", mp); // emit
//array sample with primitive functions
//YYYY-MM-DD HH:MM:SS zzzzz debug.test: ["uint",0,1,128,255,65535,4294967295]
mp.init(); // need init every time
mp.start_array(7); // declare array for seven elements. it can mixed type.
mp.set_str("uint", 4); // 1st element
mp.set_uint(0); // 2nd element
mp.set_uint(1); // 3rd element
mp.set_uint(128); // 4th element
mp.set_uint(0xff); // 5th element
mp.set_uint(0xffff); // 6th element
mp.set_uint(0xffffffff); // 7th element
logger.log("debug.test", mp);
//map sample with primitive functions
//YYYY-MM-DD HH:MM:SS zzzzz debug.test: {"string":"Hi!","float":0.3333333432674408,"double":0.3333333333333333}
mp.init(); // need init every time
mp.start_map(3); // declare map for three paires.
mp.set_str("string", 6); // 1st key
mp.set_str("Hi!", 3); // 1st value
mp.set_str("float", 5); // 2nd key
mp.set_float(1.0/3); // 2nd value
mp.set_str("double", 6); // 3rd key
mp.set_double(1.0/3); // 3rd value
logger.log("debug.test", mp); // emit
//map sample with simple method. same as prev sample (but need more CPU cycle)
//YYYY-MM-DD HH:MM:SS zzzzz debug.test: {"string":"Hi!","float":0.3333333432674408,"double":0.3333333333333333}
mp.init(); // need init every time
mp.start_map(3); // declare map for two paires.
mp.map("string", "Hi!"); // 1st key/value pair
mp.map("float", (float)(1.0/3)); // 2nd key/value pair
mp.map("double", (double)(1.0/3)); // 3rd key/value pair
logger.log("debug.mbed", mp); // emit
while(1) {
logger.log("debug.mbed", "Hello mbed"); //message body is simple string
logger.close(); //close a connection (if you want)
wait_ms(10000);
}
eth.disconnect();
}
Yuuichi Akagawa
