# Log

> Returns the logarithm of a specified number in a specified base.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## Log(float, float)

Returns the logarithm of a specified number in a specified base.

```csharp
public static float Log(float f, float p)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Value to compute the logarithm for.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Base of the logarithm operation.

### Returns

| Type                                                          | Description                        |
| ------------------------------------------------------------- | ---------------------------------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) | Result of the logarithm operation. |

### Remarks

The logarithm is the inverse function of exponentiation, meaning that it will output the exponent to which `p` needs to be raised to obtain `f`.

This function will return NaN if either:

* The value of `f` is negative.
* The value of `p` is negative, 0, 1 or Infinity.

Additionally, when the above is true, this function will return ±Infinity when:

* `f` equals Infinity (will return +Infinity).
* `f` equals 0 (-Infinity when `p` is in the (1,∞] range, +Infinity when `p` is in the (0,1) range).

Additional Resources: [Mathf.Pow](/engine/6000.5/script-reference/unityengine/mathf/pow.md).

### Examples

```csharp
using UnityEngine;

public class ScriptExample : MonoBehaviour
{
    void Start()
    {
        // Prints 2
        Debug.Log(Mathf.Log(4, 2));
        // Prints NaN
        Debug.Log(Mathf.Log(-4, 2));
        // Prints NaN
        Debug.Log(Mathf.Log(4, -2));
        // Prints NaN
        Debug.Log(Mathf.Log(4, 0));
        // Prints NaN
        Debug.Log(Mathf.Log(4, 1));
        // Prints NaN
        Debug.Log(Mathf.Log(4, Mathf.Infinity));
        // Prints Infinity
        Debug.Log(Mathf.Log(Mathf.Infinity, 2));
        // Prints -Infinity
        Debug.Log(Mathf.Log(0, 2));
        // Prints Infinity
        Debug.Log(Mathf.Log(0, 0.2f));
    }
}
```

## Log(float)

Returns the natural (base e) logarithm of a specified number.

```csharp
public static float Log(float f)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Value to compute the logarithm for.

### Returns

| Type                                                          | Description                        |
| ------------------------------------------------------------- | ---------------------------------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) | Result of the logarithm operation. |

### Remarks

Computing the natural logarithm of `f` is the inverse operation to computing the Exponential of the output of this function. This means that 'Mathf.Exp(x) = f', with x being the output of this function.

Additional Resources: [Mathf.Exp](/engine/6000.5/script-reference/unityengine/mathf/exp.md).

### Examples

```csharp
using UnityEngine;

public class ScriptExample : MonoBehaviour
{
    void Start()
    {
        // natural logarithm of 100
        // prints 4.60517
        Debug.Log(Mathf.Log(100));
    }
}
```
