Formal:
* Je ne suis pas bon(ne) en français. (I am not good in French.)
* Je ne suis pas très à l'aise en français. (I am not very comfortable in French.)
Informal:
* Je ne suis pas très fort(e) en français. (I am not very strong in French.)
* Je ne parle pas très bien français. (I don't speak French very well.)
* Je suis un peu nul(le) en français. (I am a bit bad at French.) (This is very informal and might sound a little rude depending on the context.)
More nuanced:
* J'ai du mal avec le français. (I struggle with French.)
* Je suis en train d'apprendre le français, mais je ne suis pas encore très bon(ne). (I'm learning French, but I'm not very good yet.)
The best choice will depend on the situation and your relationship with the person you're speaking to.