Skip to content

Commit c0e2d30

Browse files
committed
Use High Performance Logging
1 parent 74d9c59 commit c0e2d30

File tree

116 files changed

+10831
-1725
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+10831
-1725
lines changed

src/app/AppLoggingExtensions.cs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
using System;
2+
using System.Net;
3+
using Microsoft.Extensions.Logging;
4+
5+
namespace SIPSorcery.SIP.App
6+
{
7+
internal static partial class AppLoggingExtensions
8+
{
9+
[LoggerMessage(
10+
EventId = 0,
11+
EventName = "SDPMangledForRequest",
12+
Level = LogLevel.Debug,
13+
Message = "SDP mangled for {Status} response from {RemoteSIPEndPoint}, adjusted address {RemoteEndPointAddress}.")]
14+
public static partial void LogSdpMangledRequest(
15+
this ILogger logger,
16+
SIPMethodsEnum status,
17+
SIPEndPoint remoteSipEndPoint,
18+
string remoteEndPointAddress);
19+
20+
[LoggerMessage(
21+
EventId = 0,
22+
EventName = "SDPMangledForResponse",
23+
Level = LogLevel.Debug,
24+
Message = "SDP mangled for {Status} response from {RemoteSIPEndPoint}, adjusted address {RemoteEndPointAddress}.")]
25+
public static partial void LogSdpMangledResponse(
26+
this ILogger logger,
27+
SIPResponseStatusCodesEnum status,
28+
SIPEndPoint remoteSipEndPoint,
29+
IPAddress remoteEndPointAddress);
30+
31+
[LoggerMessage(
32+
EventId = 0,
33+
EventName = "SdpMangleEmptyValues",
34+
Level = LogLevel.Warning,
35+
Message = "Mangle SDP was called with an empty body or public IP address.")]
36+
public static partial void LogSdpMangleEmptyValues(
37+
this ILogger logger);
38+
39+
[LoggerMessage(
40+
EventId = 0,
41+
EventName = "SdpMangleException",
42+
Level = LogLevel.Error,
43+
Message = "Exception MangleSDP. {errorMessage}")]
44+
public static partial void LogSdpMangleError(
45+
this ILogger logger,
46+
string errorMessage,
47+
Exception exception);
48+
49+
[LoggerMessage(
50+
EventId = 0,
51+
EventName = "SipRequestMangleException",
52+
Level = LogLevel.Error,
53+
Message = "Exception MangleSDP. {errorMessage}")]
54+
public static partial void LogSipRequestMangleError(
55+
this ILogger logger,
56+
string errorMessage,
57+
Exception exception);
58+
59+
[LoggerMessage(
60+
EventId = 0,
61+
EventName = "SipResponseMangleException",
62+
Level = LogLevel.Error,
63+
Message = "Exception MangleSIPResponse. {errorMessage}")]
64+
public static partial void LogSipResponseMangleError(
65+
this ILogger logger,
66+
string errorMessage,
67+
Exception exception);
68+
}
69+
}

src/app/Media/AudioSendOnlyMediaSession.cs

100755100644
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Linq;
33
using System.Net;
44
using System.Threading.Tasks;
5-
using Microsoft.Extensions.Logging;
65
using SIPSorcery.Net;
76
using SIPSorcery.SIP.App;
87
using SIPSorceryMedia.Abstractions;
@@ -35,7 +34,7 @@ public AudioSendOnlyMediaSession(
3534
private void AudioFormatsNegotiated(List<AudioFormat> audioFormats)
3635
{
3736
var audioFormat = audioFormats.First();
38-
logger.LogDebug("Setting audio source format to {AudioFormatID}:{AudioFormatCodec}.", audioFormat.FormatID, audioFormat.Codec);
37+
logger.LogSettingAudioSourceFormat(audioFormat.FormatID, audioFormat.Codec);
3938
AudioExtrasSource.SetAudioSourceFormat(audioFormat);
4039
}
4140

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
using System;
2+
using System.Net;
3+
using Microsoft.Extensions.Logging;
4+
using SIPSorceryMedia.Abstractions;
5+
6+
namespace SIPSorcery.Media
7+
{
8+
internal static partial class MediaLoggingExtensions
9+
{
10+
[LoggerMessage(
11+
EventId = 0,
12+
EventName = "SettingAudioSourceFormat",
13+
Level = LogLevel.Debug,
14+
Message = "Setting audio source format to {AudioFormatID}:{AudioFormatCodec}.")]
15+
public static partial void LogSettingAudioSourceFormat(
16+
this ILogger logger,
17+
int audioFormatID,
18+
AudioCodecsEnum audioFormatCodec);
19+
20+
[LoggerMessage(
21+
EventId = 0,
22+
EventName = "MusicFileNotSetOrFound",
23+
Level = LogLevel.Warning,
24+
Message = "Music file not set or not found, using default music resource.")]
25+
public static partial void LogMusicFileNotSetOrFound(
26+
this ILogger logger);
27+
28+
[LoggerMessage(
29+
EventId = 0,
30+
EventName = "SendingAudioSteamLength",
31+
Level = LogLevel.Debug,
32+
Message = "Sending audio stream length {AudioStreamLength}.")]
33+
public static partial void LogSendingAudioSteamLength(
34+
this ILogger logger,
35+
long audioStreamLength);
36+
37+
[LoggerMessage(
38+
EventId = 0,
39+
EventName = "RtpMediaPacketReceived",
40+
Level = LogLevel.Trace,
41+
Message = "audio RTP packet received from {RemoteEndPoint} ssrc {SyncSource} seqnum {SequenceNumber} timestamp {Timestamp} payload type {PayloadType}.")]
42+
public static partial void LogRtpMediaPacketReceived(
43+
this ILogger logger,
44+
IPEndPoint remoteEndPoint,
45+
uint syncSource,
46+
ushort sequenceNumber,
47+
uint timestamp,
48+
int payloadType);
49+
50+
[LoggerMessage(
51+
EventId = 0,
52+
EventName = "SendAudioFromStreamCompleted",
53+
Level = LogLevel.Debug,
54+
Message = "Send audio from stream completed.")]
55+
public static partial void LogSendAudioFromStreamCompleted(
56+
this ILogger logger);
57+
58+
[LoggerMessage(
59+
EventId = 0,
60+
EventName = "SettingAudioFormat",
61+
Level = LogLevel.Debug,
62+
Message = "Setting audio source format to {FormatID}:{Codec} {ClockRate} (RTP clock rate {RtpClockRate}).")]
63+
public static partial void LogSettingAudioFormat(
64+
this ILogger logger,
65+
int formatID,
66+
AudioCodecsEnum codec,
67+
int clockRate,
68+
int rtpClockRate);
69+
70+
[LoggerMessage(
71+
EventId = 0,
72+
EventName = "SettingVideoFormat",
73+
Level = LogLevel.Debug,
74+
Message = "Setting video sink and source format to {VideoFormatID}:{VideoCodec}.")]
75+
public static partial void LogSettingVideoFormat(
76+
this ILogger logger,
77+
int videoFormatID,
78+
VideoCodecsEnum videoCodec);
79+
80+
[LoggerMessage(
81+
EventId = 0,
82+
EventName = "AudioTrackDtmfNegotiated",
83+
Level = LogLevel.Debug,
84+
Message = "Audio track negotiated DTMF payload ID {AudioStreamNegotiatedRtpEventPayloadID}.")]
85+
public static partial void LogAudioTrackDtmfNegotiated(
86+
this ILogger logger,
87+
int audioStreamNegotiatedRtpEventPayloadID);
88+
89+
[LoggerMessage(
90+
EventId = 0,
91+
EventName = "VideoCaptureDeviceFailure",
92+
Level = LogLevel.Warning,
93+
Message = "Video source for capture device failure. {errorMessage}")]
94+
public static partial void LogVideoCaptureDeviceFailure(
95+
this ILogger logger,
96+
string errorMessage);
97+
98+
[LoggerMessage(
99+
EventId = 0,
100+
EventName = "WebcamVideoSourceFailed",
101+
Level = LogLevel.Warning,
102+
Message = "Webcam video source failed before start, switching to test pattern source.")]
103+
public static partial void LogWebcamFailedSwitchingToPattern(
104+
this ILogger logger);
105+
106+
[LoggerMessage(
107+
EventId = 0,
108+
EventName = "StreamClosedWarning",
109+
Level = LogLevel.Warning,
110+
Message = "Stream Closed.")]
111+
public static partial void LogStreamClosedWarning(
112+
this ILogger logger,
113+
Exception exception);
114+
115+
[LoggerMessage(
116+
EventId = 0,
117+
EventName = "AudioStreamReadError",
118+
Level = LogLevel.Warning,
119+
Message = "Failed to read from audio stream source.")]
120+
public static partial void LogAudioStreamReadError(
121+
this ILogger logger);
122+
123+
[LoggerMessage(
124+
EventId = 0,
125+
EventName = "AudioStreamNullError",
126+
Level = LogLevel.Warning,
127+
Message = "Failed to read from audio stream source, stream null or closed.")]
128+
public static partial void LogAudioStreamNullError(
129+
this ILogger logger);
130+
131+
[LoggerMessage(
132+
EventId = 0,
133+
EventName = "UnhandledStreamException",
134+
Level = LogLevel.Warning,
135+
Message = "Caught unhandled exception")]
136+
public static partial void LogUnhandledStreamException(
137+
this ILogger logger,
138+
Exception exception);
139+
140+
[LoggerMessage(
141+
EventId = 0,
142+
EventName = "StreamReaderCloseError",
143+
Level = LogLevel.Warning,
144+
Message = "Error occurred whilst trying to close the stream source reader.")]
145+
public static partial void LogStreamReaderCloseError(
146+
this ILogger logger,
147+
Exception exception);
148+
149+
[LoggerMessage(
150+
EventId = 0,
151+
EventName = "FrameRateError",
152+
Level = LogLevel.Warning,
153+
Message = "{framesPerSecond} fames per second not in the allowed range of {minimumFramesPerSecond} to {maximumFramesPerSecond}, ignoring.")]
154+
public static partial void LogFrameRateError(
155+
this ILogger logger,
156+
int framesPerSecond,
157+
int minimumFramesPerSecond,
158+
int maximumFramesPerSecond);
159+
160+
[LoggerMessage(
161+
EventId = 0,
162+
EventName = "SilenceSampleError",
163+
Level = LogLevel.Error,
164+
Message = "Exception sending silence sample")]
165+
public static partial void LogSendingSilenceSampleError(
166+
this ILogger logger,
167+
Exception exception);
168+
169+
[LoggerMessage(
170+
EventId = 0,
171+
EventName = "SignalGeneratorError",
172+
Level = LogLevel.Error,
173+
Message = "Exception sending signal generator sample")]
174+
public static partial void LogSignalGeneratorError(
175+
this ILogger logger,
176+
Exception exception);
177+
178+
[LoggerMessage(
179+
EventId = 0,
180+
EventName = "MediaEngineStartError",
181+
Level = LogLevel.Error,
182+
Message = "Error starting media engine. {ErrorMessage}")]
183+
public static partial void LogMediaEngineStartError(
184+
this ILogger logger,
185+
string errorMessage,
186+
Exception ex);
187+
188+
[LoggerMessage(
189+
EventId = 0,
190+
EventName = "MediaEngineStop",
191+
Level = LogLevel.Debug,
192+
Message = "Media engine stopped")]
193+
public static partial void LogMediaEngineStop(
194+
this ILogger logger);
195+
}
196+
}

src/app/Media/Sources/AudioExtrasSource.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ public void SetSource(AudioSourceOptions sourceOptions)
350350
{
351351
if (!string.IsNullOrWhiteSpace(_audioOpts.MusicFile))
352352
{
353-
Log.LogWarning("Music file not set or not found, using default music resource.");
353+
Log.LogMusicFileNotSetOrFound();
354354
}
355355

356356
var assem = typeof(VideoTestPatternSource).GetTypeInfo().Assembly;
@@ -381,7 +381,7 @@ private void InitialiseSendAudioFromStreamTimer(Stream audioStream, AudioSamplin
381381
{
382382
if (!_isClosed && audioStream != null && audioStream.Length > 0)
383383
{
384-
Log.LogDebug("Sending audio stream length {AudioStreamLength}.", audioStream.Length);
384+
Log.LogSendingAudioSteamLength(audioStream.Length);
385385

386386
_streamSendInProgress = true;
387387
_streamSourceRate = streamSampleRate;
@@ -418,7 +418,7 @@ private void SendMusicSample(object state)
418418
}
419419
catch (Exception e)
420420
{
421-
Log.LogWarning(e, "Stream Closed.");
421+
Log.LogStreamClosedWarning(e);
422422
}
423423
}
424424

@@ -440,7 +440,7 @@ private void SendSilenceSample(object state)
440440
}
441441
catch (Exception e)
442442
{
443-
Log.LogError(e, "Exception sending silence sample");
443+
Log.LogSendingSilenceSampleError(e);
444444
}
445445
}
446446

@@ -466,7 +466,7 @@ private void SendSignalGeneratorSample(object state)
466466
}
467467
catch (Exception e)
468468
{
469-
Log.LogError(e, "Exception sending signal generator sample");
469+
Log.LogSignalGeneratorError(e);
470470
}
471471
}
472472

@@ -491,27 +491,27 @@ private void SendStreamSample(object state)
491491

492492
if (_streamSourceReader.BaseStream.Position >= _streamSourceReader.BaseStream.Length)
493493
{
494-
Log.LogDebug("Send audio from stream completed.");
494+
Log.LogSendAudioFromStreamCompleted();
495495
StopSendFromAudioStream();
496496
}
497497
}
498498
else
499499
{
500-
Log.LogWarning("Failed to read from audio stream source.");
500+
Log.LogAudioStreamReadError();
501501
StopSendFromAudioStream();
502502
}
503503
}
504504
else
505505
{
506-
Log.LogWarning("Failed to read from audio stream source, stream null or closed.");
506+
Log.LogAudioStreamNullError();
507507
StopSendFromAudioStream();
508508
}
509509
}
510510

511511
}
512512
catch (Exception e)
513513
{
514-
Log.LogWarning(e, "Caught unhandled exception");
514+
Log.LogUnhandledStreamException(e);
515515
StopSendFromAudioStream();
516516
}
517517

@@ -527,7 +527,7 @@ private void SendStreamSample(object state)
527527
}
528528
catch (Exception e)
529529
{
530-
Log.LogWarning(e, "Error occurred whilst trying to close the stream source reader.");
530+
Log.LogStreamReaderCloseError(e);
531531
}
532532
}
533533
}

src/app/Media/Sources/VideoTestPatternSource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public void SetFrameRate(int framesPerSecond)
125125
{
126126
if (framesPerSecond < MINIMUM_FRAMES_PER_SECOND || framesPerSecond > MAXIMUM_FRAMES_PER_SECOND)
127127
{
128-
logger.LogWarning("{FramesPerSecond} fames per second not in the allowed range of {MinimumFramesPerSecond} to {MaximumFramesPerSecond}, ignoring.", framesPerSecond, MINIMUM_FRAMES_PER_SECOND, MAXIMUM_FRAMES_PER_SECOND);
128+
logger.LogFrameRateError(framesPerSecond, MINIMUM_FRAMES_PER_SECOND, MAXIMUM_FRAMES_PER_SECOND);
129129
}
130130
else
131131
{

0 commit comments

Comments
 (0)