Problem on printing "Ethernet.localIP()" to Serial Monitor
Based on your error messages, especially this one:

error is: "invalid operands of types 'const char [11]' and const char [10] to binary 'operator+'"


it looks like the "+" operator isn't taking advantage of a default constructor that would convert a primitive "const char[]" data type into a String. Just on a hunch, see if this works:

logger.serial (String ("Some text") + Ethernet.localIP);


It basically forces the compiler to turn "Some text" into a String object so that the "+" operator can deal with it. 

Specifically, C++ treats the string constants you passed as type const char[], a constant array of characters. The "+" operator you're trying to use is actually a method of object String; the "+" operator built into C++ doesn't know how to concatenate strings on its own, so the authors of String added their own spin on "+" that knows how to put to String objects together. Class String has a constructor that can turn a const char[] into a String object, but due to the way C++'s implicit type conversion rules work, C++ isn't willing to implicitly run the constructor if you just add two arrays of characters. However, if you explicitly convert the first array of characters into a String object, the String object's "+" operator can run, concatenating the second string onto the first.