> This page is for version v4.0.
> For other versions, use one of these documentation indexes:
> - v5.0 (default): https://humanloop.com/docs/v5/llms.txt
> - v4.0: https://humanloop.com/docs/v4/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://humanloop.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://humanloop.com/docs/_mcp/server.

> Learn how to generate from large language models and log the results in Humanloop, with managed and versioned prompts.

A [**Log**](/docs/explanation/logs) is created every time a [Prompt](/docs/explanation/prompts) is called. The Log contain contains the inputs and the output (the generation) as well as metadata such as which version of the Prompt was used and any associated feedback.

There are two ways to get your Logs into Humanloop, referred to as 'proxy' and 'async'.

### **Proxied**

In one call you can fetch the latest version of a Prompt, generate from the provider, stream the result back and log the result.
Using Humanloop as a proxy is by far the most convenient and way of calling your LLM-based applications.

### **Async**

With the async method, you can fetch the latest version of a Prompt, generate from the provider, and log the result in separate calls. This is useful if you want to decouple the generation and logging steps, or if you want to log results from your own infrastructure. It also allows you to have no additional latency or servers on the critical path to your AI features.

![](/docs/_fern-img/3f8fab61daced36a355d8ac8eacd4364ded1036071226b1e95c661ae4351aa76.webp)

The guides in this section instruct you on how to create Logs on Humanloop. Once
this is setup, you can begin to use Humanloop to evaluate and improve your LLM apps.