OSL string functions
The 'warning(...)' and 'error(...)' functions behave very similarly to the 'printf' function in that they output strings to the console output.

For example, in this answer the printf function is used to format output to the console using a command as follows :

printf("Point %f,%f,%f\n", P[0], P[1], P[2]);


This outputs the formatted string (with each %f replaced by one of the following arguments) to the console.

The warning(...) and error(...) functions work similarly except each call outputs a line formatted with the work 'WARNING' or 'ERROR' and details of where the function was called from (the shader function) similar to the following :

WARNING: Shader warning [my_shader]: Point -0.320504 -0.812141 0.157532


With the syntax being identical to 'printf' :

warning("Point %f,%f,%f\n", P[0], P[1], P[2]);