Fpermissive going to kill me

I believe you meant to write

void logger(int level,char *text,float val /*=NULL*/) {

Notice the "*" in front of text? That makes it a pointer to char rather than a char.

strcpy(char *,char); is what it ended up objecting to.