Consider below class being updated in database
public class ProductionLineItem
{
    public int Id { get; set; }
    public DateTime ProductionDate { get; set; }
    public string HandledBy { get; set; }
    public DateTime DateToMarket { get; set; }
}
void UpdateProductionRecord(ProductionLineItem existingRecord, ProductionLineItem modifiedRecord)
{
    existingRecord.Id = modifiedRecord.Id;
    existingRecord.ProductionDate = modifiedRecord.ProductionDate;
    existingRecord.HandledBy = modifiedRecord.HandledBy;
    existingRecord.DateToMarket = modifiedRecord.DateToMarket;
}
Customer wants to keep a log of all changed properties in dedicated table. I should be doing something like this:
void UpdateProductionRecordWithLog(ProductionLineItem existingRecord, ProductionLineItem modifiedRecord)
    {
        existingRecord.Id = modifiedRecord.Id;
        if (existingRecord.ProductionDate != modifiedRecord.ProductionDate)
        {
            existingRecord.ProductionDate = modifiedRecord.ProductionDate;
            //Log: productionDate update form xyz to abc
        }
        if (existingRecord.HandledBy != modifiedRecord.HandledBy)
        {
            existingRecord.HandledBy = modifiedRecord.HandledBy;
            //Log: HandledBy updated from Mr. John to Mr. Smith
        }
        if (existingRecord.DateToMarket != modifiedRecord.DateToMarket)
        {
            existingRecord.DateToMarket = modifiedRecord.DateToMarket;
            //Log: DateToMarket updated form 2013 to 2014
        }
    }
For small number of properties it should be fine, but if properties goes beyond 15-20. I believe this would not be best way to do it.
Can I make my code more clean? I am open to use any framework like AutoMapper or so, If needed.