Actually when i say different log file i meant different name. Like for example i have 2 server ( lets say 10.0.0.1 and 10.0.0.2) which are sending logs to graylog. As far as i understood graylog stores them in a one log file. Can i see them as like 10.0.0.1.log and 10.0.0.2.log etc.
I can write a script to seperate them i assume but if there is an easy way i would like to use it
Please have a look in the Documentation: Streams will give you the possibility to seperate logs on a logic level.
If you want to store your logs with different data-retention you will need to look at Index Sets.
If you were to create a separate physical index for each customer, like @gsmith said you can user the log shipper you are using (Beats/NXLog) to add a tag field to help with sorting, something like customer_tag:Agent_Smith_Services. Then create a stream/pipeline that catches those logs from their Input(s) and have a rule for each customer with something like:
rule "Log routing - Agent_Smith"
$message.customer_tag == "Agent_Smith_Services"
route_to_stream("Agent Smith Stream");
Then have the “catching” stream Agent Smith Stream that points/ends to the Agent_Smith_Index