You cannot avoid logging for ordinary inserts regardless of logging/nologging state of a table. To minimize amount of redo you have to set table nologging and use direct-load insert: INSERT /*+ APPEND */ INTO my_table SELECT ... FROM ...
Direct-load insert doesn't insert into existing extents, it always creates a new one and fills it with inserted data, hence APPEND. That implies that using INSERT /*+ APPEND */ INTO my_table VALUES (...) creates a new extent for each inserted row. I don't think it's a good idea to do that .
Ales