It looks like your JSON is pretty printed, in which case you need a multiline codec to put the parts of the object back together. There is an example of consuming a file as a single event here.
Once you do that you have a event containing JSON that contains nested JSON. You can use a json filter to do the parsing.
json { source => "message" remove_field => [ "message" ] target => "[someField]" }
json { source => "[someField][0][log]" target => "[someField][0][stuff]" }
That will result in
"someField" => [
[0] {
"date" => "2021-04-16 09:24:50",
"log" => "{\"date\":\"16/04/2021\",\"time\":\"09h24\",\"t_1\":\"20.7\",\"t_2\":\"20.0\",\"t_3\":\"12.6\",\"t_4\":\"19.1\",\"p_1\":\"115\",\"w_1\":\"0.52\",\"w_2\":\"3.72\",\"w_4\":\"1.64\"}",
"source" => "192.168.10.230",
"sn" => "00:1E:C0:8D:9A:CD",
"id" => "1",
"udate" => "1618557890",
"stuff" => {
"date" => "16/04/2021",
"p_1" => "115",
"t_2" => "20.0",
"t_1" => "20.7",
"w_1" => "0.52",
"t_4" => "19.1",
"t_3" => "12.6",
"w_2" => "3.72",
"time" => "09h24",
"w_4" => "1.64"
}
},
You might, or might not, want to use a split filter to divide the [someField] array into multiple events.
If the array is variable length and you need to iterate over it, parsing each entry, then you would need a ruby filter.